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

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

犀牛云 做網(wǎng)站百度指數(shù)資訊指數(shù)是指什么

犀牛云 做網(wǎng)站,百度指數(shù)資訊指數(shù)是指什么,默認(rèn)web站點(diǎn)和默認(rèn)網(wǎng)站一樣嗎,用java怎么做門戶網(wǎng)站目錄 適配器模式 簡介 角色 使用 優(yōu)缺點(diǎn) 使用場景 裝飾器模式 簡介 優(yōu)缺點(diǎn) 模式結(jié)構(gòu) 使用 使用場景 適配器模式 簡介 允許將不兼容的對象包裝成一個(gè)適配器類,使得其他類可以通過適配器類與原始對象進(jìn)行交互,從而提高兼容性 角色 目標(biāo)角色…

目錄

適配器模式

簡介

角色

使用

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

使用場景

裝飾器模式

簡介

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

模式結(jié)構(gòu)

使用

使用場景


適配器模式

簡介

允許將不兼容的對象包裝成一個(gè)適配器類,使得其他類可以通過適配器類與原始對象進(jìn)行交互,從而提高兼容性

角色

目標(biāo)角色:該角色定義把其他類轉(zhuǎn)換為何種接口,也就是我們的期望接口

源角色:你想把誰轉(zhuǎn)換成目標(biāo)角色,這個(gè)“誰”就是源角色,它是已經(jīng)存在的、運(yùn)行良好的類或?qū)ο?/p>

適配器角色:適配器模式的核心角色,其他兩個(gè)角色都是已經(jīng)存在的角色,而適配器角色是需要新建立的,它的職責(zé)非常簡單:通過繼承或是類關(guān)聯(lián)的方式把源角色轉(zhuǎn)換為目標(biāo)角色

使用

1.定義目標(biāo)接口:創(chuàng)建一個(gè)目標(biāo)接口,這個(gè)接口定義了客戶端所期望的功能。

2.創(chuàng)建原始類:客戶端原始功能

3.創(chuàng)建適配器類:創(chuàng)建一個(gè)適配器類,該類實(shí)現(xiàn)了目標(biāo)接口,同時(shí)包裝了不兼容的原始對象,使得客戶端可以通過目標(biāo)接口與原始對象進(jìn)行交互

4.使用目標(biāo)接口:客戶端代碼使用目標(biāo)接口與適配器進(jìn)行交互

// 目標(biāo)接口  
interface Target {  void request();  
}  // 原始類  
class Adaptee {  void specificRequest() {  System.out.println("Adaptee's specific request.");  }  
}  // 適配器類  
class Adapter implements Target {  private Adaptee adaptee;  public Adapter(Adaptee adaptee) {  this.adaptee = adaptee;  }  @Override  public void request() {  adaptee.specificRequest();  }  
}  // 客戶端代碼  
public class Client {  public static void main(String[] args) {  Adaptee adaptee = new Adaptee();  Target target = new Adapter(adaptee);  target.request();  }  
}

????????目標(biāo)接口Target,它定義了一個(gè)request方法。我們還有一個(gè)原始類Adaptee,它有一個(gè)名為specificRequest的方法。我們的適配器類Adapter實(shí)現(xiàn)了目標(biāo)接口,并且包裝了原始類的specificRequest方法。在客戶端代碼中,我們創(chuàng)建了一個(gè)原始類的實(shí)例和一個(gè)適配器類的實(shí)例,然后將適配器類的實(shí)例傳遞給目標(biāo)接口的引用。當(dāng)我們調(diào)用目標(biāo)接口的request方法時(shí),實(shí)際上是適配器類在調(diào)用原始類的specificRequest方法

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

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

??????? 1.能提高類的透明性和復(fù)用,現(xiàn)有的類復(fù)用但不需要改變。

??????? 2.目標(biāo)類和適配器類解耦,提高程序的擴(kuò)展性。

??????? 3.在很多業(yè)務(wù)場景中符合開閉原則

缺點(diǎn):

??????? 1.適配器編寫過程需要全面考慮,可能會增加系統(tǒng)的復(fù)雜性

??????? 2.增加代碼閱讀難度,降低代碼可讀性,過多使用適配器會使系統(tǒng)代碼變得凌亂

使用場景

??????? 1.一個(gè)類的接口轉(zhuǎn)換成期望的另一個(gè)接口,使不能兼容的兩個(gè)類一起工作

??????? 2.想要?jiǎng)?chuàng)建一個(gè)可以復(fù)用的類,該類可以與其他不相關(guān)的類或不可預(yù)見的類協(xié)同工作

??????? 3.在軟件維護(hù)期間,由于不同產(chǎn)品或不同廠家造成功能類似而接口不相同的情況,可以通過適配器模式來解決

????????使用適配器模式可以降低不同組件之間的耦合度,提高系統(tǒng)的可擴(kuò)展性和可維護(hù)性。同時(shí),適配器模式還可以解決不同系統(tǒng)之間的接口不兼容問題

裝飾器模式

簡介

??????? 在不改變現(xiàn)有對象結(jié)構(gòu)下,動態(tài)的給對象添加一些功能

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

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

??????? 1.裝飾器是繼承的有力補(bǔ)充,比繼承靈活,在不改變原有對象的情況下,動態(tài)的給一個(gè)對象擴(kuò)展功能,即插即用

??????? 2.通過使用不用裝飾類及這些裝飾類的排列組合,可以實(shí)現(xiàn)不同效果

??????? 3.裝飾器模式完全遵守開閉原則

缺點(diǎn)

????????裝飾器模式會增加許多子類,過度使用會增加程序得復(fù)雜性

模式結(jié)構(gòu)

角色:

????????抽象構(gòu)件角色:定義一個(gè)抽象接口以規(guī)范準(zhǔn)備接收附加責(zé)任的對象

????????具體構(gòu)件角色:實(shí)現(xiàn)抽象構(gòu)件,通過裝飾角色為其添加一些職責(zé)

????????抽象裝飾角色:繼承抽象構(gòu)件,并包含具體構(gòu)件的實(shí)例,可以通過其子類擴(kuò)展具體構(gòu)件的功能

????????具體裝飾角色:實(shí)現(xiàn)抽象裝飾的相關(guān)方法,并給具體構(gòu)件對象添加附加的責(zé)任

結(jié)構(gòu)圖:

使用

1.創(chuàng)建接口

public interface Shape {  double getArea();  
}

2.接口具體實(shí)現(xiàn)類

public class Rectangle implements Shape {  private double length;  private double width;  public Rectangle(double length, double width) {  this.length = length;  this.width = width;  }  @Override  public double getArea() {  return length * width;  }  
}

3.創(chuàng)建抽象裝飾器

public abstract class ShapeDecorator implements Shape {  protected Shape decoratedShape;  public ShapeDecorator(Shape shape) {  this.decoratedShape = shape;  }  @Override  public double getArea() {  return decoratedShape.getArea();  }  
}

4.創(chuàng)建具體裝飾器

public class RectangleWithBorder extends ShapeDecorator {  private double borderWidth;  public RectangleWithBorder(Shape shape, double borderWidth) {  super(shape);  this.borderWidth = borderWidth;  }  @Override  public double getArea() {  return decoratedShape.getArea() + borderWidth * decoratedShape.getArea();  }  
}

5.使用

public class Main {  public static void main(String[] args) {  Shape rectangle = new Rectangle(5, 5);  Shape rectangleWithBorder = new RectangleWithBorder(rectangle, 1); // 給矩形添加邊框?qū)挾葹?的裝飾器  System.out.println("Rectangle area: " + rectangle.getArea()); // 輸出:Rectangle area: 25.0  System.out.println("Rectangle with border area: " + rectangleWithBorder.getArea()); // 輸出:Rectangle with border area: 27.0  }  
}

使用場景

1.擴(kuò)展功能:當(dāng)您想要擴(kuò)展一個(gè)類的功能時(shí),可以使用裝飾器模式來添加新的責(zé)任,而不需要修改原有類的代碼。這使得代碼更加靈活,易于維護(hù)

2.動態(tài)變化:如果需要在運(yùn)行時(shí)根據(jù)需要?jiǎng)討B(tài)地改變對象的行為,可以使用裝飾器模式

3.統(tǒng)一接口:如果有一組具有相似功能但是又不完全相同的類,可以使用裝飾器模式來統(tǒng)一它們的接口,使得在使用它們時(shí)不需要關(guān)心具體的類

4.延遲加載:如果某些數(shù)據(jù)是可選的,可以在需要時(shí)才加載,使用裝飾器模式可以實(shí)現(xiàn)延遲加載的功能

5.處理復(fù)雜對象:當(dāng)涉及到復(fù)雜的對象結(jié)構(gòu)時(shí),裝飾器模式可以簡化代碼。通過將不同的行為封裝到不同的裝飾器中,可以組合這些裝飾器來創(chuàng)建具有不同行為的對象

????????裝飾器模式適用于在不修改原有代碼的基礎(chǔ)上,動態(tài)地給對象添加新的行為。它適用于需要在運(yùn)行時(shí)動態(tài)地改變對象行為或者需要統(tǒng)一接口的場景。

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

相關(guān)文章:

  • 建設(shè)網(wǎng)站企業(yè)登錄百度怎么提交收錄
  • 網(wǎng)站 www ftp功能fifa最新世界排名
  • 小程序開發(fā)和網(wǎng)站開發(fā)的區(qū)別seo綜合查詢站長工具
  • 分享類網(wǎng)站怎么做百度關(guān)鍵詞seo優(yōu)化
  • 大數(shù)據(jù)營銷是做什么的網(wǎng)站是怎么優(yōu)化推廣的
  • 宣武做網(wǎng)站百度推廣怎么登錄
  • ui做的好的網(wǎng)站有哪些內(nèi)容百度一下馬上知道
  • 專業(yè)網(wǎng)站建設(shè)西安seo網(wǎng)站排名
  • 網(wǎng)頁版1688免費(fèi)網(wǎng)站做seo
  • 威海網(wǎng)頁設(shè)計(jì)制作公司自己怎么優(yōu)化網(wǎng)站
  • php做的網(wǎng)站畢設(shè)會問的問題100大看免費(fèi)行情的軟件
  • 漯河市住房建設(shè)局網(wǎng)站百度指數(shù)查詢手機(jī)版app
  • 長春做網(wǎng)站多少錢今日熱點(diǎn)新聞15條
  • 奢做品二手 哪個(gè)網(wǎng)站好獨(dú)立站建站平臺
  • 怎么通過淘寶優(yōu)惠券做網(wǎng)站賺錢網(wǎng)絡(luò)營銷的平臺有哪些
  • 惠陽做網(wǎng)站百度推廣助手手機(jī)版
  • 網(wǎng)站建設(shè)質(zhì)量保證域名ip地址在線查詢
  • 做網(wǎng)站的目標(biāo)是什么大型網(wǎng)站制作
  • 垣曲網(wǎng)站建設(shè)歐美網(wǎng)站建設(shè)
  • wordpress 電影moban百度搜索seo優(yōu)化技巧
  • 成都商城類網(wǎng)站設(shè)計(jì)淘寶店鋪怎么引流推廣
  • 做任務(wù)賺錢網(wǎng)站百度點(diǎn)擊軟件還有用嗎
  • 欽州浦北網(wǎng)站建設(shè)百度云群組
  • 學(xué)做網(wǎng)站在哪里營銷推廣軟文案例
  • 電子商務(wù)網(wǎng)站建設(shè)策劃書例子網(wǎng)絡(luò)廣告創(chuàng)意
  • 深圳官方網(wǎng)站制作站長工具怎么關(guān)掉
  • cms仿站十堰seo排名公司
  • aspcms網(wǎng)站使用教程愛站網(wǎng)ip反域名查詢
  • 虹口網(wǎng)站制作精準(zhǔn)客戶信息一條多少錢
  • 品牌網(wǎng)站建設(shè)的要點(diǎn)今日新聞?wù)?0條簡短