工厂方法


定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,共方法使一个类的实例化延迟到子类

工厂模式他的关键是:将创建对象和使用对象分开

 

/**
	 * 声明产品接口
	 */
	public interface ICar{
		public void productMethod();
	}

	/**
	 * 产品实现类
	 */
	public class BenChi implements ICar{
		private String  发动机 ;
		private String  轮胎 ;

		public BenChi(String 发动机, String 轮胎){
			this.发动机 = 发动机;
			this.轮胎 = 轮胎;
		}
		
		@Override
		public void productMethod() {
			System.err.println(发动机+ 轮胎);
		}
		
	}
	
	/**
	 * 工厂接口
	 */
	public interface IFactory{
		public ICar createBenChi();
	}
	
	/**
	 * 工厂实现类
	 */
	public class Factory implements IFactory{

		@Override
		public ICar createBenChi() {
			String  发动机  = "奔驰发动机";
			String  轮胎  = "奔驰轮子";
			ICar benchi = new BenChi(发动机, 轮胎);
			return  benchi;
		}
		
	}

       工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)、本文所讲述的工厂方法模式、以及抽象工厂模式

    作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过new就可以完成创建的对象,无需使用工厂模式。如果使用工厂模式,就需要引入一个工厂类,会增加系统的复杂度。

    简单工厂:当一个类有多个构造器,因为构造器名称都相同,可以用静态工厂方法来区分

猜你喜欢

转载自flyouwith.iteye.com/blog/2207810