您的位置:首页 > 其它

设计模式 (二)工厂方法模式(FactoryMethod)

2012-04-16 10:41 489 查看
工厂方法模式原理图:



具体实现代码:

[java] view
plaincopy

package com.designpattern.factorymethod;



public interface FactoryMethod {

public Animal createAnimal();

}

[java] view
plaincopy

package com.designpattern.factorymethod;



public class DolphinFactory implements FactoryMethod {



@Override

public Animal createAnimal() {

return new Dolphin();

}



}

[java] view
plaincopy

package com.designpattern.factorymethod;



public class TigerFactory implements FactoryMethod {



@Override

public Animal createAnimal() {

return new Tiger();

}



}

[java] view
plaincopy

package com.designpattern.factorymethod;



public interface Animal {

public void eat();

}

[java] view
plaincopy

package com.designpattern.factorymethod;



public class Dolphin implements Animal {



@Override

public void eat() {

System.out.println("Dolphin is eating");

}



public void swim() {

System.out.println("Dolphin is swimming");

}



}

[java] view
plaincopy

package com.designpattern.factorymethod;



public class Tiger implements Animal {



@Override

public void eat() {

System.out.println("Tiger is eating");

}



public void run() {

System.out.println("Tiger is running");

}



}

[java] view
plaincopy

package com.designpattern.factorymethod;



public class Client {



public static void main(String[] args) {

FactoryMethod factory = new TigerFactory();

Animal tiger = factory.createAnimal();

tiger.eat();



factory = new DolphinFactory();

Animal dolphin = factory.createAnimal();

dolphin.eat();

}

}

在工厂方法模式中,客户端不在负责对象的创建,而是把这个责任交给了具体的工厂类,客户端只负责对象的调用,从而明确各个类的职责。

如果有新的产品加进来,只需要新增加一个具体的创建产品的工厂类和具体的产品类就可以了,不会影响但原来的其他的代码,代码量也不会变大,后期维护更加容易,增强了系统的可扩展性。

但是使用这个模式的时候而外地编写代码,增加了工作量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: