工厂设计模式详解
来源:互联网 发布:linux 用txt打开文件 编辑:程序博客网 时间:2024/05/16 13:48
工厂设计模式详解
工厂模式是抽象类的应用之一。下面详细的讲解利用抽象类来实现工厂模式的过程。
1. 工厂模式的结构图。
2. 工厂模式的应用。
一:工厂模式的结构图。
工厂模式的使用过程是:用户调用工厂类如上图中的CatFactory类来生成一个CatService,用户不需要了解到CatService类的实现过程,用户需要某个类的时候只需要调用它的工厂方法,工厂方法会给用户返回一个实例。利用Service和ServiceFactory接口的作用是利用多态。
二:工厂模式的应用。
package factoryTest;interface Service { void method1(); void method2();}interface ServiceFactory { Service getService();}class CatService implements Service { public void method1() { System.out.println(":Cat realized the method1"); } public void method2() { System.out.println(":Cat realized the method2"); }}class DogService implements Service { public void method1() { System.out.println(":Dog realized the method1"); } public void method2() { System.out.println(":Dog realized the method2"); }}class CatFactory implements ServiceFactory { @Override public Service getService() { return new CatService(); }}class DogFactory implements ServiceFactory { @Override public Service getService() { return new DogService(); }}public class FactoryTest { public static void serviceConsumer(ServiceFactory fact) { Service service = fact.getService(); service.method1(); service.method2(); } public static void main(String[] args) { serviceConsumer(new CatFactory()); serviceConsumer(new DogFactory()); }}
由上面代码可以看到工厂模式与接口结合的好处是:利用工厂可以直接提供服务,而且由于接口的存在各种不同的具体工厂实现类也可以进行匹配,使得代码更加的紧凑。
0 0
- 工厂设计模式详解
- 【设计模式】工厂模式详解
- 设计模式-工厂模式详解(非抽象工厂模式)
- 设计模式详解之工厂方法模式
- 设计模式详解之抽象工厂模式
- JAVA设计模式之工厂模式详解
- 设计模式 - 工厂模式(factory pattern) 详解
- 【Java设计模式之工厂模式详解】
- 设计模式详解之抽象工厂模式
- 设计模式详解之工厂方法模式
- java设计模式详解--工厂模式
- 设计模式-抽象工厂模式详解
- 设计模式之--工厂模式详解(简单工厂、工厂方法、抽象工厂)
- Java常用设计模式详解(一)---工厂模式
- (三)简单工厂模式详解 分类: java 设计模式
- 设计模式 - 抽象工厂模式(abstract factory pattern) 详解
- Java研究之学习设计模式-简单工厂模式详解
- Java研究之学习设计模式-抽象工厂模式详解
- 将XML形式的数据转换成Json格式
- 几个裁剪图片 github地址
- Meterial Design学习问题记录
- SeekBar
- NodeJS、NPM安装配置步骤(windows版本)
- 工厂设计模式详解
- web基础
- LeetCode|Remove Nth Node From End of List
- Apache Kylin部署在CDH 5.4上报错Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HTableDescr
- <转>myBatis-spring整合之sqlsessionfactory
- guid的获取(系统下唯一标识符)
- Thinking in Java——第十八章-Java I/O系统
- 安卓上图片格式问题
- Ubuntu下开发一些常用命令