提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
抽象工厂类图
/**
*
* @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();
}
}