李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
接口中的工厂方法设计模式
Leefs
2019-10-26 AM
1863℃
0条
# 接口中的工厂方法设计模式 ### 前言 小编经过一步步摸索,终于到了《Java编程思想》接口这一章的最后一节,接口与工厂..... 本次小编只通过书中的示例对工厂模式作一个简单解析,不进行深入探讨。 ### 一、概念 **工厂设计模式是为了将对象的创建与使用进行分离 。**(这段话是本小结的重点) 接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方式就是工厂方法设计模式。这与直接调用构造器不同,我们在工厂对象中调用的是创建方法,而该工厂对象将生成接口的某个实现的对象。 在理论层面,通过这种方法,我们的代码将完全与接口的实现分离,这就使得我们可以透明的将某个实现替换成为另一个实现。 ### 二、代码示例 ```java interface Service{ void method1(); void method2(); } interface ServiceFactory{ Service getService(); } class Implementation1 implements Service{ Implementation1(){} @Override public void method1() { System.out.println("Implementation1 method1"); } @Override public void method2() { System.out.println("Implementation1 method2"); } } class Implementation1Factory implements ServiceFactory{ @Override public Service getService() { return new Implementation1(); } } class Implementation2 implements Service{ Implementation2(){} @Override public void method1() { System.out.println("Implementation2 method1"); } @Override public void method2() { System.out.println("Implementation2 method2"); } } class Implementation2Factory implements ServiceFactory{ @Override public Service getService() { return new Implementation2(); } } public class Factories { public static void serviceConsumer(ServiceFactory fact){ Service s = fact.getService(); s.method1(); s.method2(); } public static void main(String[] args) { serviceConsumer(new Implementation1Factory()); serviceConsumer(new Implementation2Factory()); } } ``` > 运行结果 ```java Implementation1 method1 Implementation1 method2 Implementation2 method1 Implementation2 method2 ``` > 代码执行流程 1. 1.创建`Implementation1Factory`对象并对其进行初始化。 2. 2.执行`serviceConsumer()`静态方法 3. 3.执行`fact.getService()`语句 + 调用`Implementation1Factory`类中的`getService()`方法 + 执行方法创建一个`Implementation1`对象 + 执行`Implementation1`中的构造方法,并对其进行初始化 4. 4.执行`s.method1();`方法 + 调用`Implementation1`类中的`method1()`方法 + 执行输出语句,打印输出`Implementation1 method1` ..... 下面的步骤都是对上方的重复操作,就不细讲了。 > 代码分析 + 1.接口Service中拥有两个方法,`method1()`和`method2()` + 2.接口`ServiceFactory`中`getService()`方法,用来对调用Service中的方法 + 3.类`Implementation1`实现接口Service重写Service中的两个方法,及对对象的创建 + 4.类`Implementation1Factory`实现接口`ServiceFactory`中的方法,并返回一个`Implementation1`创建对象,**及对对象的使用** + 5.最关键的代码静态的`serviceConsumer`方法,它通过接收`ServiceFactory`类型的参数,去调用`ServiceFactory`中的方法,达到了工厂化
标签:
Java
,
Java编程思想
,
JavaSE
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/63.html
上一篇
类和接口的嵌套(二) -- 非静态嵌套类
下一篇
如何在本地部署多个Tomcat服务
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
nginx
正则表达式
LeetCode刷题
BurpSuite
Spring
Eclipse
链表
Java
Hive
Jquery
Map
算法
Elasticsearch
Flume
Sentinel
Hbase
Http
Spark SQL
CentOS
Docker
Spark Streaming
gorm
Shiro
随笔
哈希表
FastDFS
SpringCloudAlibaba
JavaSE
Stream流
Python
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭