设计模式(三)——抽象工厂模式

来源:互联网 发布:动态称重算法 编辑:程序博客网 时间:2024/06/02 04:01

抽象工厂方法是工厂方法的泛化版,工厂方法是一种特殊的抽象工厂方法。抽象工厂方法中,一个具体的工厂可以生产多个具体的产品。
抽象工厂方法同样包含四个角色:抽象工厂,具体工厂,抽象产品,具体产品。

//抽象产品public interface Television {    public void play();}//具体产品public class HaierTelevision implements Television{    @Override    public void play() {        // TODO Auto-generated method stub        System.out.println("海尔电视机播放中");    }}public class TCLTelevision implements Television {    @Override    public void play() {        // TODO Auto-generated method stub        System.out.println("TCL电视播放中");    }}//抽象产品public interface AirCondition {    public void changeTemperature();}//具体产品public class HaierCondition implements AirCondition {    @Override    public void changeTemperature() {        // TODO Auto-generated method stub        System.out.println("海尔空调改变温度中");    }}public class TCLAirCondition implements AirCondition {    @Override    public void changeTemperature() {        // TODO Auto-generated method stub        System.out.println("TCL空调改变温度中");    }}//抽象工厂public interface EFactory {    public Television produceTelevision();    public AirCondition produceAirCondition();}//具体工厂public class HaierFactory implements EFactory {    @Override    public Television produceTelevision() {        // TODO Auto-generated method stub        return new HaierTelevision();    }    @Override    public AirCondition produceAirCondition() {        // TODO Auto-generated method stub        return new HaierCondition();    }}public class TCLFactory implements EFactory {    @Override    public Television produceTelevision() {        // TODO Auto-generated method stub        return new TCLTelevision();    }    @Override    public AirCondition produceAirCondition() {        // TODO Auto-generated method stub        return new TCLAirCondition();    }}

抽象工厂模式的优点:
(1)当一个产品族中多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象,这对需要根据当前环境来决定其行为的软件系统来说很实用。
(2)工厂方法的优点,它都有。
抽象工厂模式的缺点:
(1)抽象工厂无法被扩展。

0 0
原创粉丝点击