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

原创 2012年03月31日 13:54:29

工厂方法模式原理图:

具体实现代码:

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

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

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

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

面向对象的设计模式系列之二:工厂方法模式(FactoryMethod)

究竟什么是工厂模式呢?它又能解决什么样的问题呢?在知晓这个问题之前,让我们先了解一个概念:对象耦合。经常在很多技术书籍上听到"松耦合,高内聚"。那什么是松耦合呢?既然有松耦合,那应该存在相对的紧耦合吧...
  • xmlife
  • xmlife
  • 2015年02月04日 19:27
  • 377

设计模式(二)工厂方法模式(FactoryMethod)-创建型

在简单工厂模式中,通过一个工厂类来判断需要调用的具体的实现类,隔离了客户端和具体的实现类之间的关系,从而降低了系统间的耦合性,但是也带来了一个问题,就是如果要创建的对象很多,这个工厂类会非常庞大,仍然...

设计模式入门之工厂方法模式FactoryMethod

N天之后,终于看懂这个模式了...我发现我在没有学会1+1之前,先去玩儿1+2去了... 我在自己实现都时候用到了这种方法,可是一味得去理解面向接口编程,结果觉得这样是面向对象编程方法不好... 到这...

设计模式之--工厂方法模式(FactoryMethod )

工厂方法模式(FactoryMethod )是创建型模式之一,           工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中...
  • HideLin
  • HideLin
  • 2012年10月22日 23:41
  • 624

创建型设计模式之工厂方法模式FactoryMethod

创建型设计模式之工厂方法模式FactoryMetho

JAVA设计模式三--factorymethod(工厂方法模式)

Factory Method,工厂方法: 定义一个用于创建对象的接口,让子类决定实例化哪一个类, Factory Method使一个类的实例化延迟到了子类 工厂方法模式   工厂方法(...
  • hfmbook
  • hfmbook
  • 2012年06月20日 17:24
  • 1682

设计模式-工厂方法模式-factorymethod-python

工厂方法模式

面向对象设计模式之FactoryMethod工厂方法模式(创建型)

动机:当一个类不知道它所必须创建的对象的类的时候。当一个类希望由它的子类来指定它所创建的对象的时候。 当类将创建对象的职责委托给多个帮助子类中的某一个, 并且你希望将哪一个帮助子类是代理者这一信息局部...
  • yja886
  • yja886
  • 2012年02月24日 09:44
  • 536

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

1.定义 工厂方法是一种对象创建型的设计模式。上一节中谈到的抽象工厂经常使用工厂方法实现。与其他创建型模式一样,工厂方法解决的是在不指定对象具体类型的情况下创建对象的问题。它仅定义一个用于创建对象的接...

设计模式(一)----- 工厂方法(FactoryMethod)----(JAVA版)

设计模式(JAVA版本)(23)  工厂方法(FactoryMethod):   定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式 (二)工厂方法模式(FactoryMethod)
举报原因:
原因补充:

(最多只允许输入30个字)