FactoryMethodPattern(工厂方法)

/**
 * 工厂方法模式
 * 分为四部分
 * 1.产品接口
 * 2.产品实例
 * 3.工厂接口
 * 4.工厂实例
 * 工厂类最好用单例模式,但在这里主要是说明工厂方法,就不用单例了
 * @author TMAC-J
 *
 */
public class FactoryMethodPattern {
	/**
	 * 产品
	 *
	 */
	interface IProduct{
		void doSomething();
	}
	
	public class ConcreteProduct1 implements IProduct{
		@Override
		public void doSomething() {
			System.out.println("concreteProduct do something!");
		}
	}
	
	public class ConcreteProduct2 implements IProduct{
		@Override
		public void doSomething() {
			System.out.println("concreteProduct2 do something!");
		}
	}
	
	interface IFactory{
		IProduct create();
	}
	
	public class ConcreteFactory1 implements IFactory{
		@Override
		public IProduct create() {
			IProduct product = new ConcreteProduct1();
			return product;
		}
	}
	
	public class ConcreteFactory2 implements IFactory{
		@Override
		public IProduct create() {
			IProduct product = new ConcreteProduct2();
			return product;
		}
	}
	
	public void test(){
		IFactory concreteFactory1 = new ConcreteFactory1();
		concreteFactory1.create();//生产产品1
		IFactory concreteFactory2 = new ConcreteFactory2();
		concreteFactory2.create();//生产产品1
	}
	
}

  

原文地址:https://www.cnblogs.com/yzjT-mac/p/6226728.html