抽象工廠模式定義:提供乙個建立一系列的相關的或者依賴的物件的介面,無需指定它們的具體實現類,具體的時間分別在子類工廠中產生。
優點:隔離了具體類的生產實現,使得替換具體的工廠實現類很容易。
包含模組有:
1.抽象產品介面:定義產品的介面,公共的暴露方法。便於實際的產品類實現。
2.具體的產品類:包含實際產品的類的邏輯處理:
3.抽象工廠介面:定義產生系列物件的介面
4.具體的工廠實現:實現抽象的介面工廠,返回具體的產品類的實現。
**演示:
1.抽象的產品介面,定義了car 和 ibreakfast
package factory.******;
/** * 抽象產品角色 交通工具介面
* * @author lilin
* */
public inte***ce car
package factory.******;
/** * 抽象產品角色 交通工具介面
* * @author lilin
* */
public inte***ce car
2.定義具體的產品類的實現:
package factory.******;
/** * 具體產品角色,自行車
* * @author lilin
* */
public class bike implements car
}
package factory.******;
/** * @author lilin
* */
public class bus implements car
}
/**
* */
package factory.abstractfactory;
/** * @author lilin
* */
public class milk implements ibreakfast
}
/**
* */
package factory.abstractfactory;
/** * @author lilin
* */
public class orange implements ibreakfast
}
3.定義好抽象的工廠介面,一系列的獲取例項的介面方法:
/**
* */
package factory.abstractfactory;
import factory.******.car;
/** * @author lilin
* */
public inte***ce iabstractfactory
4.定義具體的工廠生產類,具體的產品例項返回。
/**
* */
package factory.abstractfactory;
import factory.******.bike;
import factory.******.car;
/** * @author lilin
* */
public class lowpersonfactory implements iabstractfactory
@override
public ibreakfast getbreakfast()
}
/**
* */
package factory.abstractfactory;
import factory.******.bus;
import factory.******.car;
/** * @author lilin
* */
public class highpersonfactory implements iabstractfactory
@override
public ibreakfast getbreakfast()
}
簡單測試下,抽象工廠模式的實現:
/**
* */
package factory.abstractfactory;
import org.testng.annotations.test;
import factory.******.car;
/** * @author lilin
* */
public class abstractfactorytest
}
23種設計模式之抽象工廠模式
定義 為建立一組相關或者是相互依賴的物件提供介面,而不需要指定它們的具體類 使用場景 乙個物件族有相同的約束時可以使用抽象工廠模式。類圖 抽象工廠模式與工廠方法模式的區別 抽象工廠模式是工廠方法模式的公升級版本,他用來建立一組相關或者相互依賴的物件。他與工廠方法模式的區別就在於,工廠方法模式針對的是...
23種設計模式之 抽象工廠模式
提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類 相比入工廠模式而言,如果說工廠模式支援增加任意產品。那麼抽象工廠模式增加新的產品線很容易,但是無法增加新的產品。而簡單工廠模式和工廠模式的區別可以認為工廠模式是優化了簡單工廠模式,遵循了開閉原則 public inte ce com...
23種設計模式01 工廠模式之抽象工廠模式
在上篇文章23種設計模式01 工廠模式 中介紹了簡單工廠模式和工廠方法模式,但是簡單工廠模式在新增新的產品師,需要修改工廠類,違背了開閉原則 ocp原則 工廠方法模式,提供乙個抽象工廠角色,一旦要建立新的同一產品的不同型號,只需要建立乙個具體工廠角色,用於建立對應的產品,而不用修改原有的 解決了簡單...