李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
Java匿名内部类(三)--再仿工厂方法
Leefs
2019-11-21 AM
4916℃
4条
# Java匿名内部类(三)--再仿工厂方法 ### 前言 本篇是对之前[接口中的工厂方法设计模式](https://lilinchao.com/archives/63.html)的一个更改,将其从之前的使用普通类完成的任务,改成由匿名内部类进行实现。 所以,在学习本篇之前小编建议大家去先看一下该篇文章,同时小编在该篇中将代码的执行过程已经讲的很清楚了,所以本篇也不对其做过多的赘述。 ### 代码 ```java interface Service {//抽象产品 void method1(); void method2(); } interface ServiceFactory{//抽象工厂 Service getService(); } class Implementation1 implements Service{//具体产品1 private Implementation1(){} public void method1(){ System.out.println("Implementation1 method1"); } public void method2(){ System.out.println("Implementation1 method2"); } public static ServiceFactory factory=new ServiceFactory() { @Override public Service getService() { return new Implementation1(); } }; } class Implementation2 implements Service{//具体产品2 private Implementation2(){} public void method1(){ System.out.println("Implementation2 method1"); } public void method2(){ System.out.println("Implementation2 method2"); } public static ServiceFactory factory=new 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(Implementation1.factory); serviceConsumer(Implementation2.factory); } } ``` > 运行结果 ```java Implementation1 method1 Implementation1 method2 Implementation2 method1 Implementation2 method2 ``` ### 总结 **现在用于`Implementation1`和`Implementation2`的构造器都可以是private的,并且没有任何必要去创建作为工厂的具名类。**另外,你经常只需要单一的工厂对象,因此在本例中它被创建为Service实现中的一个static域。这样所产生语法也更具有实际意义。 *温馨提示:小编再次提示您,将两篇文章对比着来分析效果最佳* *附:[接口中的工厂方法设计模式链接地址](https://lilinchao.com/archives/63.html)* [1]: https://lilinchao.com/usr/uploads/2019/11/325331578.jpg
标签:
Java
,
Java编程思想
,
JavaSE
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/211.html
上一篇
Java匿名内部类(二)
下一篇
嵌套类
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
队列
SpringCloudAlibaba
SpringCloud
Shiro
Hive
Stream流
Spark SQL
FileBeat
Spark
JavaWEB项目搭建
CentOS
正则表达式
Elasticsearch
BurpSuite
随笔
Spark RDD
排序
FastDFS
序列化和反序列化
gorm
Java工具类
Spark Core
Thymeleaf
RSA加解密
Hbase
Livy
Git
Http
Map
SpringBoot
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭