日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:52010
  • 待審:67
  • 小程序:12
  • 文章:1106242
  • 會員:784

solid 是計算機編程中五個良好原則(規則)的縮寫。 solid 允許程序員編寫更易于理解和稍后更改的代碼。 solid 通常與使用面向對象設計的系統一起使用。
讓我們使用車輛示例來解釋 solid 原理。想象一下,我們正在設計一個系統來管理不同類型的車輛,例如汽車和電動汽車,以提供運輸服務。

s?-?單一職責原則(srp)

車輛示例:想象你有一輛汽車。它負責駕駛,但不應該負責處理自己的維護(例如換油或輪胎旋轉)。相反,由一名單獨的機械師負責。
說明:在我們的代碼中,vehicle 類應該只處理與車輛本身相關的事情,比如存儲其品牌和型號。如果我們需要管理維護,我們會為此創建一個單獨的維護類。這樣,每個類都有一個工作或職責,使代碼更易于管理。

class vehicle
  def initialize(make, model)
    @make = make
    @model = model
  end
end

class maintenance
  def initialize(vehicle)
    @vehicle = vehicle
  end

  def perform_maintenance
    puts "performing maintenance on #{@vehicle.make} #{@vehicle.model}"
  end
end

登錄后復制


o?-?開/閉原理(ocp)

車輛示例:假設您有一輛基本型汽車,現在您想在系統中添加一輛電動汽車。您不必修改現有的汽車類別即可添加電動汽車的功能。相反,您可以通過創建新的電動汽車類來擴展現有功能。
說明:vehicle類是開放擴展的(你可以創建新類型的車輛,如electricvehicle),但它是封閉修改的(你不需要更改vehicle類本身來添加新類型)。

class vehicle
  def initialize(make, model)
    @make = make
    @model = model
  end

  def description
    "#{@make} #{@model}"
  end
end

class electricvehicle 




<hr><h2>
  
  
  l?-?里氏替換原理 (<a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/79544.html" target="_blank">lsp</a>)
</h2>

<p><strong>車輛示例</strong>:假設您有一支車隊,并且您可以毫無問題地用電動汽車替換任何普通汽車。兩者都應該能夠在不破壞系統的情況下執行其基本功能?-?駕駛?-?。<br><strong>說明</strong>:任何子類(如 electricvehicle)都應該能夠替換其父類(vehicle),而不改變程序的行為。這確保我們的代碼可以以相同的方式處理不同類型的車輛。<br></p>

<pre class="brush:php;toolbar:false">class vehicle
  def initialize(make, model)
    @make = make
    @model = model
  end

  def drive
    puts "driving the #{@make} #{@model}"
  end
end

class electricvehicle 




<hr><h2>
  
  
  i?-?接口隔離原則(isp)
</h2>

<p><strong>車輛示例</strong>:想象一下您有不同類型的車輛:有些可以充電(如電動汽車),有些只能駕駛(如汽油車)。你不希望汽油車必須處理充電相關的方法。<br><strong>說明</strong>:類應該只實現它們需要的接口(或行為)。例如,電動車輛可能同時實現可駕駛和可充電接口,而普通車輛僅實現可駕駛。<br></p>

<pre class="brush:php;toolbar:false">module drivable
  def drive
    raise notimplementederror, "this #{self.class} cannot drive"
  end
end

module chargeable
  def charge
    raise notimplementederror, "this #{self.class} cannot be charged"
  end
end

class vehicle
  include drivable

  def initialize(make, model)
    @make = make
    @model = model
  end

  def drive
    puts "driving the #{@make} #{@model}"
  end
end

class electricvehicle 




<hr><h2>
  
  
  d?-?依賴倒置原理(dip)
</h2>

<p><strong>車輛示例</strong>:想象一輛汽車可以有不同類型的發動機:燃氣發動機或電動發動機。汽車不應該直接依賴于特定的引擎類型,而應該依賴于更通用的引擎接口,這樣它就可以使用任何類型的引擎。<br><strong>說明</strong>:高級模塊(如車輛)不應依賴于低級模塊(如 gasengine 或 electricengine)。兩者都應該依賴于抽象(如引擎接口)。這使得系統更加靈活并且更容易更改。<br></p>

<pre class="brush:php;toolbar:false">class Engine
  def start
    raise NotImplementedError, "This #{self.class} cannot start"
  end
end

class GasEngine 



<p>通過遵循此車輛示例中的 solid 原則,我們可以構建一個易于維護、擴展和適應新需求的系統。</p>

<p>領英:https://www.linkedin.com/in/anandsoni11/</p>


          

            
        

登錄后復制

分享到:
標簽:原則 有趣 示例 類比 車輛
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 52010

    網站

  • 12

    小程序

  • 1106242

    文章

  • 784

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定