主頁(yè) > 知識(shí)庫(kù) > Ruby設(shè)計(jì)模式編程中對(duì)外觀模式的應(yīng)用實(shí)例分析

Ruby設(shè)計(jì)模式編程中對(duì)外觀模式的應(yīng)用實(shí)例分析

熱門(mén)標(biāo)簽:湖州u友防封電銷(xiāo)卡 百度地圖標(biāo)注自定義圖片 徐州網(wǎng)絡(luò)外呼系統(tǒng)哪個(gè)好 電銷(xiāo)機(jī)器人廠商代理 高德地圖標(biāo)注客服 常德電銷(xiāo)平臺(tái)外呼系統(tǒng)軟件價(jià)格 滴滴外呼系統(tǒng) 地圖標(biāo)注賺錢(qián)項(xiàng)目注冊(cè) 白銀外呼paas系統(tǒng)

何為外觀模式?

    外觀模式為子系統(tǒng)中一組不同的接口提供統(tǒng)一的接口。外觀定義了上層接口,通過(guò)降低復(fù)雜度和隱藏子系統(tǒng)間的通信以及依存關(guān)系,讓子系統(tǒng)更加易于使用。

    比方說(shuō)子系統(tǒng)中有一組不同的類(lèi),其中一些彼此依賴(lài)。這讓客戶(hù)端難以使用子系統(tǒng)中的類(lèi),因?yàn)榭蛻?hù)端需要知道每一個(gè)類(lèi)。外觀起到整個(gè)子系統(tǒng)的入口。有些客戶(hù)端只需要子系統(tǒng)的某些基本行為,而對(duì)子系統(tǒng)的類(lèi)不做太多定制,外觀為這樣的客戶(hù)端提供簡(jiǎn)化的接口。只有需要從某些子系統(tǒng)的類(lèi)定制更多行為的客戶(hù)端,才會(huì)關(guān)注外觀背后的細(xì)節(jié)。

    外觀模式:為系統(tǒng)中的一組接口提供一個(gè)統(tǒng)一的接口。外觀定義一個(gè)高層接口,讓子系統(tǒng)更易于使用。

何時(shí)使用外觀模式?

  •     子系統(tǒng)正逐漸變得復(fù)雜。應(yīng)用模式的過(guò)程中演化出許多類(lèi),可以使用外觀為這些子系統(tǒng)提供一個(gè)較簡(jiǎn)單的接口。
  •     可以使用外觀對(duì)子系統(tǒng)進(jìn)行分層。每個(gè)子系統(tǒng)級(jí)別有一個(gè)外觀作為入口點(diǎn)。讓它們通過(guò)其外觀進(jìn)行通信,可以簡(jiǎn)化它們的依賴(lài)關(guān)系。

Ruby版外觀模式應(yīng)用
需求:

股民買(mǎi)賣(mài)股票

初步代碼:

# -*- encoding: utf-8 -*-

#股票1
class Stock1
  def buy
    puts '股票1買(mǎi)入'
  end
  
  def sell
    puts '股票1賣(mài)出'
  end
end

#股票2
class Stock2
  def buy
    puts '股票2買(mǎi)入'
  end
  
  def sell
    puts '股票2賣(mài)出'
  end
end

#股票3
class Stock3
  def buy
    puts '股票3買(mǎi)入'
  end
  
  def sell
    puts '股票3賣(mài)出'
  end
end

#國(guó)債1
class NationalDebt1
  def buy
    puts '國(guó)債1買(mǎi)入'
  end
  
  def sell
    puts '國(guó)債1賣(mài)出'
  end
end

#房地產(chǎn)1
class Realty1
  def buy
    puts '房地產(chǎn)1買(mǎi)入'
  end
  
  def sell
    puts '房地產(chǎn)1賣(mài)出'
  end
end
s1 = Stock1.new
s2 = Stock2.new
s3 = Stock3.new
n1 = NationalDebt1.new
r1 = Realty1.new

s1.buy
s2.buy
s3.buy
n1.buy
r1.buy

s1.sell
s2.sell
s3.sell
n1.sell
r1.sell

問(wèn)題:

可以發(fā)現(xiàn)用戶(hù)需要了解股票、國(guó)債、房產(chǎn)情況,需要參與這些項(xiàng)目的具體買(mǎi)和賣(mài),耦合性很高。

改進(jìn)代碼

# -*- encoding: utf-8 -*-

#股票1
class Stock1
  def buy
    puts '股票1買(mǎi)入'
  end
  
  def sell
    puts '股票1賣(mài)出'
  end
end

#股票2
class Stock2
  def buy
    puts '股票2買(mǎi)入'
  end
  
  def sell
    puts '股票2賣(mài)出'
  end
end

#股票3
class Stock3
  def buy
    puts '股票3買(mǎi)入'
  end
  
  def sell
    puts '股票3賣(mài)出'
  end
end

#國(guó)債1
class NationalDebt1
  def buy
    puts '國(guó)債1買(mǎi)入'
  end
  
  def sell
    puts '國(guó)債1賣(mài)出'
  end
end

#房地產(chǎn)1
class Realty1
  def buy
    puts '房地產(chǎn)1買(mǎi)入'
  end
  
  def sell
    puts '房地產(chǎn)1賣(mài)出'
  end
end

#基金類(lèi)
class Fund
  attr_accessor s1, s2, s3, n1, r1
  
  def initialize
    s1 = Stock1.new
    s2 = Stock2.new
    s3 = Stock3.new
    n1 = NationalDebt1.new
    r1 = Realty1.new
  end
  
  def buy
    s1.buy
    s2.buy
    s3.buy
    n1.buy
    r1.buy
  end
  
  def sell
    s1.sell
    s2.sell
    s3.sell
    n1.sell
    r1.sell
  end
end

f1 = Fund.new
f1.buy
f1.sell

好處:用戶(hù)不需要了解各種股票,只需購(gòu)買(mǎi)賣(mài)出基金即可。

您可能感興趣的文章:
  • 設(shè)計(jì)模式中的觀察者模式在Ruby編程中的運(yùn)用實(shí)例解析
  • 實(shí)例解析Ruby設(shè)計(jì)模式開(kāi)發(fā)中對(duì)觀察者模式的實(shí)現(xiàn)
  • 深入剖析Ruby設(shè)計(jì)模式編程中對(duì)命令模式的相關(guān)使用
  • 詳解組合模式的結(jié)構(gòu)及其在Ruby設(shè)計(jì)模式編程中的運(yùn)用
  • 設(shè)計(jì)模式中的模板方法模式在Ruby中的應(yīng)用實(shí)例兩則
  • 實(shí)例解析Ruby設(shè)計(jì)模式編程中Strategy策略模式的使用
  • 實(shí)例講解Ruby使用設(shè)計(jì)模式中的裝飾器模式的方法
  • Ruby設(shè)計(jì)模式編程中使用Builder建造者模式的實(shí)例
  • 詳解Ruby設(shè)計(jì)模式編程中對(duì)單例模式的運(yùn)用
  • Ruby設(shè)計(jì)模式編程之適配器模式實(shí)戰(zhàn)攻略
  • Ruby使用設(shè)計(jì)模式中的代理模式與裝飾模式的代碼實(shí)例
  • Ruby中使用設(shè)計(jì)模式中的簡(jiǎn)單工廠模式和工廠方法模式
  • 解析proxy代理模式在Ruby設(shè)計(jì)模式開(kāi)發(fā)中的運(yùn)用

標(biāo)簽:公主嶺 遼寧 荊門(mén) 張家界 永州 三沙 梧州 普洱

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ruby設(shè)計(jì)模式編程中對(duì)外觀模式的應(yīng)用實(shí)例分析》,本文關(guān)鍵詞  Ruby,設(shè)計(jì)模式,編程,中,對(duì),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ruby設(shè)計(jì)模式編程中對(duì)外觀模式的應(yīng)用實(shí)例分析》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Ruby設(shè)計(jì)模式編程中對(duì)外觀模式的應(yīng)用實(shí)例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章