抽象工程模式:
应用场景:对象稳定,应对对象多系列的变化。
解释,对象稳定:对象的抽象类型不经常更新,不会出现
对象系列的变化:对象抽象类型不经常变,而抽象对象类项下对象的系列,不断的变化
缺点:难以应对新对对象类型的变化
英文:Abstract Factory(创建型模式)
Public createFactory{
Public static Road CreadteRoad(){
Return new Road();
}
Public static Water createWater(){
Return new Water();
}
Public satic hill createHill(){
Return new Hill();
}
}
问题:变化点移到createFactory
解决方案:提供一种封装机制,封装变化点
提供几个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定他们具体的类。--《设计模式》GOF
Public abstract class road{
}
Public abstract class Building{
}
Public abstract class tunnel{
}
Public abstract class jungle{
}
Public abstract factory{
Public abstract road createroad();
Public abstract tunnel createtunnel();
Public abstrace jungle createjungle();
}
Public class Road1 :road{
}
Public class Road2 :road{
}
Public class Building1:Building{
}
Public class Building2:Building{
}
Public class Jungle1:Jungle{
}
Public class tunnel1:Tunnel{
}
Public class tunnel2:Tunnel{
}
Class Master{
Factory factory;
Public Master(factory){
This.factory=factory;
}
Public void BuildFactory(){
Build road=factory.createBuild();
Tunnel tunnel=factory.createTunnel();
Jungle jungle=factory.createJungle();
}
Public void run(){
}
Public void Main(String []arg){
Factory factory=new Factory1();
Master master=new Master(factory);
Master.run();
}
}
Public class Facatory1 extends factory{
Public overrid Buiding createbuilding(){
Return New Building1();
}
Public overrid Jungle createJungle(){
return new Jungle1();
}
Public overrid Tunnel createTunnel(){
Return new Tunnel1()
}
Public overrid Road createRoad(){
Return new Road1();
}
}