当前位置: 首页 > news >正文

福州做网站优化/抖音seo优化系统招商

福州做网站优化,抖音seo优化系统招商,谷歌seo外链平台,建设银行购物网站java工厂模式三种详解(部分转载) 很好的一篇转载文章,原文章更加优秀! 我理解的工厂模式 为了代码的扩展性,使用套娃的模式封装代码,这样在代码扩展的时候,不改变对外调用的代码,只增加一些类。 注意开…

java工厂模式三种详解(部分转载)

很好的一篇转载文章,原文章更加优秀!

我理解的工厂模式

为了代码的扩展性,使用套娃的模式封装代码,这样在代码扩展的时候,不改变对外调用的代码,只增加一些类。
注意开闭原则,也就是说对扩展开放,对修改关闭。这里准确的说是,可以增加类,但是尽量不要对类内部进行修改。

没有使用工厂模式

比如火影中的尾兽,是一个抽象类或者接口,这个接口有一个待实现的方法,使用技能,也就是使用大招;其他的尾兽,从一尾到九尾,是具体的实现类,每个尾兽有不同的大招实现。假如你是六道仙人,你拥有所有的尾兽,然后如果你和辉夜进行战斗的时候,你就需要选择某个尾兽进行战斗,先实例化一个尾兽,然后使用对应的大招。比如选择九尾,实例化九尾,念出九尾的大招使用!
这样做有什么弊端呢?你必须选择某个尾兽,然后使用相应的大招,速度慢啊!而且假如你增加了某个尾兽,那么你就必须增加这个尾兽的代码,然后改变使用它的代码。
特别是,你没有一个统一的调用方法!

简单工厂模式

现在你找到了一个简单的方法进行战斗,你创建了一个大招库(就是工厂),这个工厂只有一个作用,就是根据你输入的尾兽,自动的就使用大招,有什么不同吗?是的,现在你只需要输入一个尾兽的名字,自动就创建了这个尾兽的实例,并且使用相应的大招,也就是说,你不用在乎具体大招实现,你只需要输入一个尾兽的名字进工厂,然后就使用出大招了,速度就提升了,比如你输入九尾,然后自动就创建实例,然后使用大招,而你只做了一件事,就是传递尾兽的名字而已。
这就是简单工厂模式,也就是将对象的实例化进行了封装,外部调用不用在乎细节,直接用就行了。

多个工厂方法

上面的简单工厂模式,如果我们传递的尾兽名字出错,那大招就发不出来,还不完蛋了!
因此呢,我们在工厂中,为每个尾兽创建一个工厂方法,到时候想用哪个尾兽就直接使用这个工厂方法,比如要使用九尾,就使用九尾的工厂方法,然后就会自动创建九尾实例,使用九尾的大招。

多个静态工厂方法

以上的工厂调用其实也是实例化的,这样还是比较麻烦,因此我们可以让工厂方法是static的,这样就可以直接用工厂调用对应尾兽的静态工厂方法了。

抽象工厂方法

上面的代码虽然解决的了封装的问题,但是并不完美,因为如果增加了一个尾兽,我们需要添加一个尾兽的实现类,还要在工厂类中添加对应尾兽的工厂方法,因为工厂类是调用类,因此修改它就不符合开闭原则,也就是说对扩展开放,对修改关闭。这里准确的说是,最好的原则是,可以增加类,但是尽量不要对类内部进行修改。
怎么办呢,首先我们创建一个抽象工厂类或者一个工厂类接口,对每个尾兽创建不同的工厂类,实现这个接口,这样对外调用使用抽象工厂类就可以了,增加尾兽,就增加相应的尾兽工厂类即可。

http://www.lbrq.cn/news/1250335.html

相关文章:

  • 国外服务器做网站不能访问/市场调研问卷调查怎么做
  • 怎么创建网站挣钱/网络营销可以做什么工作
  • 做网站最好的工具/整站优化价格
  • 找网站开发公司/搜索引擎外部优化有哪些渠道
  • 网站做一些流量互换/长沙官网seo分析
  • 网站的友情链接做多少个比较合适/百度免费推广网站
  • 家具网站建设策划书/seo搜索引擎优化到底是什么
  • 广东网站开发建设/电脑培训网
  • 贵阳网站建设制作方法/网络推广运营外包公司
  • 公司网站搜索引擎排名/2022年适合小学生的新闻
  • 广州做餐饮的招聘网站/做app推广去哪找商家
  • 柯桥做网站有哪些公司/注册推广赚钱一个80元
  • 兴义做网站的公司/微信加人推码35一单
  • 党建网站制作/汕头seo托管
  • 做web网站的步骤/如何做一个自己的网站呢
  • 做app和做网站/百度推广引流
  • 手机网站打开很慢/百度的网址是什么
  • dw做动态网站站点怎么/网站检测
  • 建设银行泰安培训中心官方网站/杭州seo泽成
  • 在网上做翻译的网站/网页关键词排名优化
  • 灵犀科技 高端网站建设首页/网站更新seo
  • 日本专线快递公司/包头整站优化
  • 深圳网站建设电话/seo网络科技有限公司
  • 个人网站建站源码/seo网站排名的软件
  • 织梦网站添加视频/自己开一个培训机构流程
  • wordpress ttfb/天津seo网站推广
  • 苏州相城网站建设/百度指数下载手机版
  • 重庆工业网站建设/北京网络营销公司
  • 网站建设业务活动/搜索指数查询
  • 网站后台jsp怎么做分页/下载百度网盘app最新版
  • 深入理解String类:揭秘Java字符串常量池的优化机制
  • 水下管道巡检机器人cad【10张】三维图+设计说明书
  • “物联网+职业本科”:VR虚拟仿真实训室的发展前景
  • 语言模型(LM):n-gram模型原理与困惑度(Perplexity)计算详解
  • Spring Boot全局异常处理与日志监控实战指南
  • iptables 里INPUT、OUTPUT、FORWARD 三个链(Chain)详解