第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

上一套川菜,啊不上一套粵菜吧——抽象工廠模式

定义

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体的类。

解析

比较简单的创建型模式。就是创建一系列对象,而这些对象是相互相关或者相互依赖的。
比较易懂的例子是皮肤。更换皮肤通常需要修改导航栏的样式,首页背景图等。假设这些样式封装在三个不同的对象中,对象导航栏和对象首页。如下UML
(为了让画图简单这里UML只分两个部分)
图片描述
Widget中文名即窗口组件。

客户端是Client,其中调用的是WidgetFactory接口和Index接口,Navigation接口。

而WidgetFactory接口有两个实现类,分别是蓝色组件黑色组件,因为接口规定了创建首页index和创建导航栏navigation两个方法,所以对应的两个工厂实现类也有两个对应创建方法,分别是创建自己工厂对应样式的组件。

创建的对应实现类也有对应的接口。就是黑色组件创建的导航和首页必须实现index接口和navigation接口。

这样如果在调用端需要修改组件样式的话,只需要在声明工厂的地方切换实现类即可。也就是切换皮肤。

这里要注意的是,对应的工厂实现类实例通常是单例的,因为整个进程中通常只需要一个工厂实例就够了。而产品是否单例要看实际情况。

将场景一般化就是如下UML
图片描述

定义了
一个抽象工厂接口
抽象接口的两个(实际场景里可能是多个)实现类。
两个(多个)产品接口
工厂实现类中的具体产品
和调用工厂的客户端

效果

  • 抽象与实现分离。
  • 让有相关性的产品关联起来,容易管理。
  • 如果需要切换产品实现在工厂里修改即可比较容易修改。

总结

和标题一样,如果每张桌子固定要上几类菜,如几个炒菜几份汤之类的,要川菜就把实现类换成川菜,那这些上的就是川菜,如果要换粤菜就换粤菜,这样的话菜的配置不变,但是都换成粤菜系的。
实际应用中当你需要创建一系列相关的对象的时候就可以考虑抽象工厂模式。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消