设计模式-- 抽象工厂

提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。 

 

                                                                                    抽象工厂类图

  

/**
 * 
* @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();
	}

}








猜你喜欢

转载自blog.csdn.net/yf289178199/article/details/80040779