設計模式-工廠方法模式的概述和使用-介面

ZHOU_VIP發表於2017-06-04

工廠方法模式概述:

工廠方法模式中抽象工廠類負責定義建立物件的介面,具體物件的建立工作由繼承抽象工廠的具體類實現。

優點:

客戶端不需要再負責物件的建立,從而明確了各個類的職責,如果有新的物件增加,只需要增加一個具體的類和具體的工廠類即可,

不影響已有的程式碼,後期維護容易,增強了系統的擴充套件性。

缺點:需要額外的編寫程式碼,增加了工作量

package cn.itcast_02;

public abstract class Animal {
	
	public abstract void eat();
	
}

package cn.itcast_02;

public class Cat extends Animal {

	@Override
	public void eat() {
		System.out.println("貓吃魚");
	}

}

package cn.itcast_02;

public class Dog extends Animal {

	@Override
	public void eat() {
		System.out.println("狗吃肉");
	}

}

package cn.itcast_02;

public interface Factory {
	
	public abstract Animal createAnimal();
	
}

package cn.itcast_02;

public class CatFactory implements Factory {

	@Override
	public Animal createAnimal() {
		return new Cat();
	}

}

package cn.itcast_02;

public class DogFactory implements Factory {

	@Override
	public Animal createAnimal() {
		return new Dog();
	}

}

package cn.itcast_02;

public class AnimalDemo {
	public static void main(String[] args) {
		// 需求:我要買只狗
		Factory f = new DogFactory();
		Animal a = f.createAnimal();
		a.eat();
		System.out.println("-------");
		
		// 需求:我要買只貓
		f = new CatFactory();
		a = f.createAnimal();
		a.eat();
	}
}


相關文章