5.28工廠方法模式

測試類

package org.westos.常用的設計模式.工廠方法模式;
//這是一個工廠方法模式的測試類
/**
 * 每一個具體類(繼承於抽象類),都有一個特定了工廠類(該類是Factory接口的實現)用來創建該類對象
 * */
public class Demo {
	public static void main(String[] args) {
		//創建一個工廠類對象,採用接口多態的形式
		Factory f = new CatFactory();
		//創建貓類對象
		Animal c = f.createAnimal();
		c.eat();
		//更改f的堆內存地址值
		f = new DogFactory();
		Animal d = f.createAnimal();
		d.eat();
	}
}

抽象類

package org.westos.常用的設計模式.工廠方法模式;

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

具體類

package org.westos.常用的設計模式.工廠方法模式;

public class Cat extends Animal {

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

}
package org.westos.常用的設計模式.工廠方法模式;

public class Dog extends Animal {

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

}

工廠接口

package org.westos.常用的設計模式.工廠方法模式;

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

工廠接口實現類

package org.westos.常用的設計模式.工廠方法模式;

public class CatFactory implements Factory {

	@Override
	public Animal createAnimal() {
		return new Cat();
	}
}
package org.westos.常用的設計模式.工廠方法模式;

public class DogFactory implements Factory {

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

}



發佈了61 篇原創文章 · 獲贊 6 · 訪問量 7912
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章