提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
抽象工厂类图
/** * * @ClassName: IIcon * @Description: 图标接口 * @author 雨ゆこ * @date 2018年4月22日 * @version yuko1.0 */ public interface IIcon { void show(); }
/** * * @ClassName: IProtocol * @Description: 协议接口 * @author 雨ゆこ * @date 2018年4月22日 * @version yuko1.0 */ public interface IProtocol { void communication(); }
/** * * @ClassName: VirtualDeviceFactory * @Description: 抽象工厂接口 * @author 雨ゆこ * @date 2018年4月22日 * @version yuko1.0 */ public interface VirtualDeviceFactory { IIcon createIcon(); IProtocol createIProtocol(); }
/** * * @ClassName: MiIcon * @Description: 图标实现类 * @author 雨ゆこ * @date 2018年4月22日 * @version yuko1.0 */ public class MiIcon implements IIcon{ public void show() { System.out.println("miIcon 展示"); } }
/** * * @ClassName: FlatIcon * @Description: 图标实现类 * @author 雨ゆこ * @date 2018年4月22日 * @version yuko1.0 */ public class FlatIcon implements IIcon{ public void show() { System.out.println("FlatIcon 展示"); } }
/** * * @ClassName: MiProtocol * @Description: 协议实现类 * @author 雨ゆこ * @date 2018年4月22日 * @version yuko1.0 */ public class MiProtocol implements IProtocol{ public void communication() { System.out.println("MiProtocol 协议"); } }
/** * * @ClassName: ISOProtocol * @Description: 协议实现 * @author 雨ゆこ * @date 2018年4月22日 * @version yuko1.0 */ public class ISOProtocol implements IProtocol { public void communication() { System.out.println("ISOProtocol 协议"); } }
/** * * @ClassName: MVD * @Description: 抽象工厂实现类 * @author 雨ゆこ * @date 2018年4月22日 * @version yuko1.0 */ public class MVD implements VirtualDeviceFactory{ public IIcon createIcon() { return new MiIcon(); } public IProtocol createIProtocol() { return new MiProtocol(); } }
/** * * @ClassName: IVD * @Description: 抽象工厂实现类 * @author 雨ゆこ * @date 2018年4月22日 * @version yuko1.0 */ public class IVD implements VirtualDeviceFactory{ public IIcon createIcon() { return new FlatIcon(); } public IProtocol createIProtocol() { return new ISOProtocol(); } }