关闭

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

1197人阅读 评论(2) 收藏 举报

工厂方法模式原理图:

具体实现代码:

package com.designpattern.factorymethod;

public interface FactoryMethod {
	public Animal createAnimal();
}

package com.designpattern.factorymethod;

public class DolphinFactory implements FactoryMethod {

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

}

package com.designpattern.factorymethod;

public class TigerFactory implements FactoryMethod {

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

}

package com.designpattern.factorymethod;

public interface Animal {
	public void eat();
}

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");
	}

}

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");
	}

}

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();
	}
}

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

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

但是使用这个模式的时候而外地编写代码,增加了工作量。

3
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:530818次
    • 积分:5510
    • 等级:
    • 排名:第4792名
    • 原创:118篇
    • 转载:16篇
    • 译文:2篇
    • 评论:226条
    博客专栏
    我的地带
    我的微博
    最新评论