之前说的简单工厂是一类工厂只能生产一类产品,比如汽车厂只能生产汽车。
但是抽象工厂不同,抽象工厂考虑的是多等级的产品的生产。同一个具体工厂生产的不同等级的产品称为一个产品族。
抽象工厂的定义:
抽象工厂是是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。
抽象工厂的优点:抽象工厂增强了程序的可扩展性,当增加一个新的产品族时,不需要修改原代码,满足开闭原则。
抽象工厂的缺点:当产品族中需要增加一个新的产品时,所有的工厂类都需要进行修改。增加了系统的抽象性和理解难度。
package factory;
import com.sun.xml.internal.ws.api.pipe.Engine;
public interface Abstractfactory
{
public Engine createEngine();
public Aircondition createAircondition();
}
class FactoryBaoma implements Abstractfactory {
public Engine createEngine() {
return new EngineA();
}
public Aircondition createAircondition() {
return new AirconditionA();
}
}
//定义工厂的主类
public interface Engine
{
}
class EngineA implements Engine
{
public EngineA()
{
System.out.println("制造-->EngineA");
}
}
public interface Aircondition
{
}
public class Aircondition
{
}
class AirconditionA implements Aircondition
{
public AirconditionA()
{
System.out.println("制造-->AirconditionA");
}
}
public class AirconditionB implements Aircondition
{
public AirconditionB()
{
System.out.println("制造-->Aircondition");
}
}
//定义工厂生产的产品
class Customer
{
public static void main(String[] args)
{
FactoryBaoma factoryBaoma = new FactoryBaoma();
factoryBaoma.createAircondition();
factoryBaoma.createEngine();
}
}
//顾客类
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)