中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

國(guó)外搜索引擎網(wǎng)址網(wǎng)站推廣優(yōu)化怎么做最好

國(guó)外搜索引擎網(wǎng)址,網(wǎng)站推廣優(yōu)化怎么做最好,網(wǎng)絡(luò)公司網(wǎng)站賞析,做招聘的網(wǎng)站排名小談設(shè)計(jì)模式(7)—裝飾模式 專(zhuān)欄介紹專(zhuān)欄地址專(zhuān)欄介紹 裝飾模式裝飾模式角色Component(抽象組件)ConcreteComponent(具體組件)Decorator(抽象裝飾器)ConcreteDecorator(具…

小談設(shè)計(jì)模式(7)—裝飾模式

  • 專(zhuān)欄介紹
    • 專(zhuān)欄地址
    • 專(zhuān)欄介紹
  • 裝飾模式
    • 裝飾模式角色
      • Component(抽象組件)
      • ConcreteComponent(具體組件)
      • Decorator(抽象裝飾器)
      • ConcreteDecorator(具體裝飾器)
    • 工作流程
      • 首先
      • 其次
      • 然后
      • 最后
    • Java代碼實(shí)現(xiàn)
      • 代碼分析
    • 優(yōu)缺點(diǎn)分析
      • 優(yōu)點(diǎn)
        • 符合開(kāi)閉原則
        • 可以動(dòng)態(tài)地添加/刪除功能
        • 遵循單一職責(zé)原則
        • 裝飾器類(lèi)與具體組件類(lèi)獨(dú)立
      • 缺點(diǎn)
        • 可能產(chǎn)生過(guò)多的具體裝飾器類(lèi)
        • 裝飾器與組件類(lèi)的接口不一致
    • 總結(jié)

專(zhuān)欄介紹

專(zhuān)欄地址

link

專(zhuān)欄介紹

主要對(duì)目前市面上常見(jiàn)的23種設(shè)計(jì)模式進(jìn)行逐一分析和總結(jié),希望有興趣的小伙伴們可以看一下,會(huì)持續(xù)更新的。希望各位可以監(jiān)督我,我們一起學(xué)習(xí)進(jìn)步,加油,各位。
在這里插入圖片描述

裝飾模式

裝飾模式(Decorator Pattern)是一種結(jié)構(gòu)型設(shè)計(jì)模式,它允許你動(dòng)態(tài)地向一個(gè)對(duì)象添加額外的功能,而不需要修改其原始類(lèi)。通過(guò)將對(duì)象包裝在裝飾器類(lèi)中,你可以在不改變現(xiàn)有對(duì)象結(jié)構(gòu)的情況下,逐步地添加功能。

裝飾模式角色

在這里插入圖片描述

Component(抽象組件)

定義了具體組件和裝飾器的共同接口,可以是抽象類(lèi)或接口。

ConcreteComponent(具體組件)

實(shí)現(xiàn)了抽象組件定義的接口,是被裝飾的原始對(duì)象。

Decorator(抽象裝飾器)

包含一個(gè)指向具體組件的引用,并實(shí)現(xiàn)了抽象組件定義的接口。

ConcreteDecorator(具體裝飾器)

通過(guò)裝飾器對(duì)具體組件進(jìn)行擴(kuò)展或修改,添加額外的功能。

在這里插入圖片描述

工作流程

首先

定義一個(gè)抽象組件(Component),它聲明了具體組件和裝飾器共同的接口方法。

其次

創(chuàng)建一個(gè)具體組件(ConcreteComponent),它實(shí)現(xiàn)了抽象組件的接口方法,是被裝飾的原始對(duì)象。

然后

創(chuàng)建一個(gè)抽象裝飾器(Decorator),它也實(shí)現(xiàn)了抽象組件的接口方法,并包含一個(gè)指向具體組件的成員變量(通常為抽象組件類(lèi)型),用于持有被裝飾的對(duì)象。

最后

創(chuàng)建具體裝飾器(ConcreteDecorator),它繼承自抽象裝飾器,并在裝飾器的基礎(chǔ)上添加了額外的功能。具體裝飾器中通常會(huì)重寫(xiě)抽象組件的接口方法,以在調(diào)用前后進(jìn)行額外的處理,然后再調(diào)用被裝飾對(duì)象的相應(yīng)方法。
在這里插入圖片描述

Java代碼實(shí)現(xiàn)

// Step 1: 定義抽象組件
interface Component {void operation();
}// Step 2: 創(chuàng)建具體組件
class ConcreteComponent implements Component {public void operation() {System.out.println("執(zhí)行具體組件的操作");}
}// Step 3: 創(chuàng)建抽象裝飾器
abstract class Decorator implements Component {protected Component component;public Decorator(Component component) {this.component = component;}public void operation() {component.operation();}
}// Step 4: 創(chuàng)建具體裝飾器
class ConcreteDecorator extends Decorator {public ConcreteDecorator(Component component) {super(component);}public void operation() {// 在調(diào)用具體組件操作前進(jìn)行額外處理System.out.println("在調(diào)用具體組件操作前進(jìn)行額外處理");// 調(diào)用具體組件的操作super.operation();// 在調(diào)用具體組件操作后進(jìn)行額外處理System.out.println("在調(diào)用具體組件操作后進(jìn)行額外處理");}
}// 使用裝飾模式
public class Main {public static void main(String[] args) {// 創(chuàng)建具體組件對(duì)象Component component = new ConcreteComponent();// 創(chuàng)建具體裝飾器對(duì)象,并將具體組件對(duì)象傳入Component decorator = new ConcreteDecorator(component);// 調(diào)用裝飾后的操作decorator.operation();}
}

代碼分析

Component 是抽象組件接口,ConcreteComponent 是具體組件類(lèi),實(shí)現(xiàn)了抽象組件接口的方法。Decorator 是抽象裝飾器類(lèi),實(shí)現(xiàn)了抽象組件接口,并持有一個(gè)抽象組件類(lèi)型的成員變量。ConcreteDecorator 是具體裝飾器類(lèi),繼承自抽象裝飾器類(lèi),并重寫(xiě)了操作方法,在調(diào)用前后添加了額外處理。

在主函數(shù)中,先創(chuàng)建具體組件對(duì)象ConcreteComponent,然后將其傳入具體裝飾器對(duì)象ConcreteDecorator 的構(gòu)造函數(shù)中,用裝飾器包裝具體組件。最后調(diào)用裝飾后的操作,會(huì)按照一定的順序執(zhí)行額外處理和具體組件操作。

優(yōu)缺點(diǎn)分析

優(yōu)點(diǎn)

符合開(kāi)閉原則

可以在不修改現(xiàn)有代碼的情況下,通過(guò)新增裝飾器類(lèi)來(lái)擴(kuò)展對(duì)象的功能。

可以動(dòng)態(tài)地添加/刪除功能

可以根據(jù)需要?jiǎng)討B(tài)地添加或刪除對(duì)象的功能,組合不同的裝飾器實(shí)現(xiàn)不同的行為組合。

遵循單一職責(zé)原則

具體的組件類(lèi)只負(fù)責(zé)核心功能,具體的裝飾器類(lèi)只關(guān)注附加的功能,各個(gè)類(lèi)職責(zé)明確,可維護(hù)性高。

裝飾器類(lèi)與具體組件類(lèi)獨(dú)立

裝飾器類(lèi)與具體組件類(lèi)之間是松耦合的關(guān)系,可以獨(dú)立變化,增加或刪除裝飾器不會(huì)影響其他組件的行為。

缺點(diǎn)

可能產(chǎn)生過(guò)多的具體裝飾器類(lèi)

如果系統(tǒng)中有很多功能需要擴(kuò)展,可能會(huì)導(dǎo)致產(chǎn)生大量的具體裝飾器類(lèi),增加系統(tǒng)的復(fù)雜性。

裝飾器與組件類(lèi)的接口不一致

在裝飾器模式中,裝飾器類(lèi)和具體組件類(lèi)的接口不一致,導(dǎo)致客戶端需要區(qū)分調(diào)用。
在這里插入圖片描述

總結(jié)

裝飾模式提供了一種靈活的、可擴(kuò)展的方式來(lái)修改對(duì)象的功能,同時(shí)保持了簡(jiǎn)單的接口和代碼的可維護(hù)性。但是需要權(quán)衡好擴(kuò)展的復(fù)雜度和對(duì)象接口的一致性。

http://www.risenshineclean.com/news/54984.html

相關(guān)文章:

  • 龍華建站公司b站視頻推廣網(wǎng)站2023年
  • 深圳微信網(wǎng)站建設(shè)公司網(wǎng)絡(luò)營(yíng)銷(xiāo)專(zhuān)業(yè)就業(yè)方向
  • 做外貿(mào)哪幾個(gè)網(wǎng)站好如何做網(wǎng)站推廣私人
  • 網(wǎng)站公司哪家好哪家網(wǎng)站推廣好
  • 網(wǎng)站開(kāi)發(fā)應(yīng)用技術(shù)專(zhuān)業(yè)一站式網(wǎng)站設(shè)計(jì)
  • 做網(wǎng)站的圖片新網(wǎng)站百度多久收錄
  • 國(guó)外購(gòu)物獨(dú)立網(wǎng)站建設(shè)全國(guó)人大常委會(huì)
  • 麗水網(wǎng)站建設(shè)拉新推廣一手接單平臺(tái)
  • 西安網(wǎng)站開(kāi)發(fā)百度圖片查找
  • 保定設(shè)計(jì)網(wǎng)站建設(shè)網(wǎng)址查詢服務(wù)器地址
  • 企業(yè)網(wǎng)站服務(wù)器租用平臺(tái)優(yōu)化
  • 網(wǎng)站標(biāo)簽怎么做嘉興百度快照優(yōu)化排名
  • 有什么可以做建筑模型的網(wǎng)站成都官網(wǎng)seo費(fèi)用
  • 裝飾行業(yè)網(wǎng)站建設(shè)企業(yè)qq
  • 山東省建設(shè)建設(shè)監(jiān)理協(xié)會(huì)網(wǎng)站長(zhǎng)沙正規(guī)競(jìng)價(jià)優(yōu)化推薦
  • 網(wǎng)站行業(yè)新聞怎么做百度快照搜索
  • 專(zhuān)業(yè)網(wǎng)站建設(shè)行業(yè)現(xiàn)狀網(wǎng)絡(luò)推廣項(xiàng)目外包公司
  • 食品包裝設(shè)計(jì)公司哪家好網(wǎng)站搜索引擎優(yōu)化工具
  • 上海頻道做網(wǎng)站怎么樣希愛(ài)力雙效片副作用
  • 商務(wù)網(wǎng)站建設(shè)需要多少錢(qián)seo常用的優(yōu)化工具
  • PHP做的彩票網(wǎng)站好用嗎電腦培訓(xùn)中心
  • 研究政府網(wǎng)站建設(shè)的意義優(yōu)秀的網(wǎng)絡(luò)搜索引擎營(yíng)銷(xiāo)案例
  • win2003做網(wǎng)站百度關(guān)鍵詞怎么優(yōu)化
  • 教育類(lèi)型網(wǎng)站如何優(yōu)化網(wǎng)絡(luò)
  • 定做微信小程序搜索引擎優(yōu)化的技巧
  • 樂(lè)清 做網(wǎng)站 多少錢(qián)中國(guó)經(jīng)濟(jì)網(wǎng)人事
  • 日本做電子賀卡網(wǎng)站軟件推廣怎么賺錢(qián)
  • 蘇州做網(wǎng)站設(shè)計(jì)的公司網(wǎng)站推廣的渠道有
  • ui培訓(xùn)的課程都有哪些seo建站收費(fèi)地震
  • 東莞做網(wǎng)站一年費(fèi)用百度指數(shù)明星搜索排名