工厂方法模式原理图:
具体实现代码:
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();
}
}
在工厂方法模式中,客户端不在负责对象的创建,而是把这个责任交给了具体的工厂类,客户端只负责对象的调用,从而明确各个类的职责。
如果有新的产品加进来,只需要新增加一个具体的创建产品的工厂类和具体的产品类就可以了,不会影响但原来的其他的代码,代码量也不会变大,后期维护更加容易,增强了系统的可扩展性。
但是使用这个模式的时候而外地编写代码,增加了工作量。
分享到:
相关推荐
C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method)
C++设计模式课件8_Factory Method_工厂方法.pdf
设计模式C++学习之工厂方法模式(Factory Method)
FACTORY METHOD(工厂方法)
C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式) (Level 300)
NULL 博文链接:https://zhouhaitao.iteye.com/blog/1003702
NULL 博文链接:https://lym6520.iteye.com/blog/698013
C#面向对象设计模式纵横谈:Factory Method 工厂方法模式(创建型模式)
C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式) 视频教程,主讲人李建忠
1. 简单工厂模式(Simple Factory) 2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一...
文章地址:https://blog.csdn.net/mazhiyuan1981/article/details/110196482
FactoryMethod使一个类的实例化延迟到其子类;(2)、适用性:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,...
它们都是由不同的厂家生产的,这就是工厂方法模式(FactoryMethod)与前面所说的简单工厂模式(SimpleFactory)的差别。 实例: 多文档系统。我已经用C#的源码编程了:请下载Factory Method Patter.rar
.wkpf,.wkpf1{ font-family:"微软雅黑"; font-size:13px; line-height:30px; text-decoration:none; color:#818183;}1599次浏览 评价:好中差 概述...这就是要说的FactoryMethod模式了。意图定义一个用户创建
本文实例讲述了Python设计模式之工厂方法模式。分享给大家供大家参考,具体如下: 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延时到其...
Factory Method 设计模式 工厂方法模式
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...
- 抽象工厂模式(Abstract Factory) - 单例模式(Singleton) - 建造者模式(Builder) - 原型模式(Prototype) - 代理模式(Proxy) - 适配器模式(Adapter) - 装饰器模式(Decorator) - 桥接模式(Bridge) - 组合...