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

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

//抽象产品
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)抽象工厂无法被扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值