工厂方法模式是简单工厂模式的扩充。
在使用工厂模式时,当需要增加一个类新的实例时,就需要在工厂类中增加代码。
这样不便于后期代码的维护。
工厂方法类将原来的工厂类中的创建类的对象的方法抽象出来,然后创建生成每个具体实例的工厂类。
当需要增加性的实例时候,只需要增加一个具体的创建产品的工厂类和具体产品类就行了。
1,所有动物类的接口
package joeho.net.csdn.blog.SimpleFactory;
public interface Animal {
public void eat();
}
2,老虎类
package joeho.net.csdn.blog.SimpleFactory;
public class Tiger implements Animal{
public void run() {
System.out.println("老虎会跑");
}
public void eat() {
System.out.println("老虎会吃");
}
}
3,海豚类
package joeho.net.csdn.blog.SimpleFactory;
public class Doiphin implements Animal{
public viod swim() {
System.out.println("海豚会游泳");
}
public void eat() {
System.out.println("海豚会吃");
}
}
4,鹦鹉类
package joeho.net.csdn.blog.SimpleFactory;
public class Parrot implements Animal {
public void fly() {
System.out.println("鹦鹉会飞");
}
public void eat() {
System.out.println("鹦鹉会吃");
}
}
5,抽象工厂类
package joeho.net.csdn.blog.SimpleFactory;
public interface AnimalFactory {
public Animal creatAnimal() ;
}
6,具体工厂类
package joeho.net.csdn.blog.SimpleFactory;
public class TigerFactory implements AnimalFactory {
public Animal creatAnimal(){
return newTiger ();
}
}
..............
.............
5,客户端调用代码
Animal anm = TigerFactory .creatAnimal();
anm.run();
anm.eat();
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/joeho/archive/2010/01/20/5218825.aspx