标签:测试结果 bsp 播放 增加 code lin 生产 air actor
模式定义
抽象工厂模式:提供一个创建一系列相关或相关依赖对象的接口,而无需指定他们具体的类,抽象工厂模式又被称为Kit模式,属于对象创建型模式。
模式结构
以window和linux的按钮和文本框为例
模式分析
优点:
(1)抽象工厂模式隔离了具体类的生成,使得客户并不需要知道什么被创建,在某种程度上,改变其工厂可以改变整个运行环境。
(2)当一个 产品族中多个对象一起工作时,它能保证客户端只使用一个产品族对象。
(3)符合开闭原则,增加新的具体工厂和产品族很方便。
缺点:
(1)在添加新的产品时,难以扩展抽象工厂来生产新种类的产品,针对抽象工厂的扩展,这将涉及到对抽象工厂角色及所有子类的修改,显然带来很多不便。
电视空调案例
TV接口类
package com.zck.abstractfactory; public interface TV { public void play(); }
HaierTV类
package com.zck.abstractfactory; public class HaierTV implements TV { public void play() { System.out.print("海尔电视正在播放\n"); } }
TCLTV类
package com.zck.abstractfactory; public class TCLTV implements TV { public void play() { System.out.print("TCL电视正在播放\n"); } }
空调接口类
package com.zck.abstractfactory; public interface AirConditioner { public void change(); }
海尔空调类
package com.zck.abstractfactory; public class HaierAirConditioner implements AirConditioner { public void change() { System.out.print("海尔空调正在改变温度\n"); } }
TCL空调类
package com.zck.abstractfactory; public class TCLAirConditoner implements AirConditioner { public void change() { System.out.print("TCL空调正在改变温度\n"); } }
工厂接口类
package com.zck.abstractfactory; public interface Factory { public TV produceTV(); public AirConditioner produceAirConditioner(); }
海尔工厂类
package com.zck.abstractfactory; public class HaierFactory implements Factory { public TV produceTV() { return new HaierTV(); } public AirConditioner produceAirConditioner() { return new HaierAirConditioner(); } }
TCL工厂类
package com.zck.abstractfactory; public class TCLFactory implements Factory { public TV produceTV() { return new TCLTV(); } public AirConditioner produceAirConditioner() { return new TCLAirConditoner(); } }
client测试类
package com.zck.abstractfactory; public class Client { public static void main(String[] args) { Factory factory; TV tv; AirConditioner airConditioner; factory = new HaierFactory(); tv = factory.produceTV(); airConditioner = factory.produceAirConditioner(); tv.play(); airConditioner.change(); } }
测试结果
标签:测试结果 bsp 播放 增加 code lin 生产 air actor
原文地址:https://www.cnblogs.com/2016-zck/p/13868169.html