抽象工廠模式

抽象工廠模式
抽象工廠模式是將一個簡單東西變爲複雜的東西,但是這樣的可以方便以後的擴展,實現開閉原則,需要擴展只需要增加代碼,不需要需改以前的代碼。
抽象工廠類:負責加工產品的工廠,下面還有具體的工廠類
抽象產品類:一個產品的總稱 。下面還有具體實現產品類
具體實現類:相當於客戶端的調用。
以手機爲例:
抽象工廠:
相當於一個手機總產,負責接收訂單
public interface IFactory {
MB create();
}

工廠的具體實現類:
三星手機:
public class UnderSanXingFactory implements IFactory{

@Override
public ShouJi create() {
    // TODO Auto-generated method stub
    return new Sanxing();
}

}

小米手機:
public class UnderXiaoMiFactory implements IFactory{

@Override
public ShouJi create() {
    // TODO Auto-generated method stub
    return new XiaoMi();
}

}
每個工廠負責生產具體的手機,以後擴展只需要實現抽象工廠類,即可!

抽象具體類:

相當於一個手機的總稱呼:

public class ShouJi{

public ShouJi() {
    // TODO Auto-generated constructor stub
}

}

手機具體的分類:
三星:
public class SanXing extends ShouJi{
public void createShouji(){
System.out.println(“SanXing”);
}
}
小米
public class XiaoMi extends ShouJi{
public void createShouji(){
System.out.println(“XiaoMi”);
}
}
要增加一個手機,只要繼承手機類即可!!

客戶端的調用:

public class FactoryMain {
public static void main(String[] args) {
// 調用生產三星手機
IFactory factory = new UndeSanxingFactory();
SanXing sanXing= (SanXing) factory.create();
sanXing.create();
// 調用生產小米手機
IFactory iFactory = new UnderXiaoMiFactory();
XiaoMi xiaoMi= (XiaoMi) iFactory.create();
xiaoMi.createShouJi();
}
}

這樣既可以完成一個抽象工廠!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章