国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設(shè)計模式之七大原則

這篇具有很好參考價值的文章主要介紹了設(shè)計模式之七大原則。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

??單一職責(zé)原則

????????單一職責(zé)原則告訴我們一個類應(yīng)該只有一個責(zé)任或者只負(fù)責(zé)一件事情。

????????想象一下,如果一個類承擔(dān)了太多的責(zé)任,就像一個人同時負(fù)責(zé)做飯、洗衣服和打掃衛(wèi)生一樣,那么這個類會變得非常復(fù)雜,難以理解和維護(hù)。而且,當(dāng)需要修改其中一個功能時,可能會影響到其他功能,導(dǎo)致意想不到的問題。

????????通過遵循單一職責(zé)原則,我們可以將一個復(fù)雜的類拆分成多個小的、具有獨(dú)立職責(zé)的類。每個類只關(guān)注自己的職責(zé),這樣代碼會更加清晰、易于理解和修改。

????????舉個例子,假設(shè)我們有一個User類,它既負(fù)責(zé)用戶的登錄驗(yàn)證,又負(fù)責(zé)用戶信息的管理。按照單一職責(zé)原則,我們可以將這個類拆分成兩個類:一個負(fù)責(zé)用戶的登錄驗(yàn)證,另一個負(fù)責(zé)用戶信息的管理。這樣,當(dāng)我們需要修改登錄驗(yàn)證邏輯時,就不會影響到用戶信息的管理部分。

????????總結(jié)起來,單一職責(zé)原則的核心思想是:一個類應(yīng)該只有一個責(zé)任,這樣可以提高代碼的可讀性、可維護(hù)性和可擴(kuò)展性。

??里氏替換原則

????????里氏替換原則指導(dǎo)我們?nèi)绾卧O(shè)計和使用繼承關(guān)系。簡單來說,里氏替換原則告訴我們,子類對象可以替換父類對象出現(xiàn)在任何能使用父類對象的地方,而不會產(chǎn)生錯誤或者破壞程序的正確性。

????????舉個例子,假設(shè)有一個動物類Animal,其中有一個方法叫做makeSound(),用于發(fā)出動物的聲音。然后我們派生出了兩個子類Cat和Dog,它們都繼承自Animal類。按照里氏替換原則,我們可以在任何需要Animal對象的地方使用Cat或Dog對象,比如調(diào)用makeSound()方法。

????????具體到代碼實(shí)現(xiàn)上,如果Cat和Dog類分別實(shí)現(xiàn)了自己的makeSound()方法,那么無論是Animal類型的變量還是Cat、Dog類型的變量,都可以調(diào)用makeSound()方法,而且得到的結(jié)果應(yīng)該符合預(yù)期。

????????總結(jié)起來,里氏替換原則的核心思想是:子類對象應(yīng)該能夠替換父類對象,而不會引起任何錯誤或異常。這樣設(shè)計出來的代碼更加靈活、可擴(kuò)展,并且易于維護(hù)。

??開閉原則

????????開閉原則告訴我們軟件實(shí)體(類、模塊、函數(shù)等)應(yīng)該對擴(kuò)展開放,對修改關(guān)閉。

????????開閉原則的核心思想是:當(dāng)需要改變一個系統(tǒng)的行為時,我們應(yīng)該盡量通過添加新的代碼來實(shí)現(xiàn),而不是修改已有的代碼。這樣做的好處是,我們可以保持已有的代碼穩(wěn)定性,減少引入新錯誤的風(fēng)險。

????????舉個例子,假設(shè)我們有一個電商網(wǎng)站,其中有一個購物車類Cart,用于管理用戶的購物車信息?,F(xiàn)在,我們需要添加一個新的功能,比如優(yōu)惠券折扣。按照開閉原則,我們應(yīng)該創(chuàng)建一個新的類DiscountCoupon,并且讓它負(fù)責(zé)計算折扣金額。然后,在Cart類中,我們可以通過調(diào)用DiscountCoupon類的方法來獲取折扣金額,而不是直接修改Cart類的代碼。

????????這樣做的好處是,如果以后我們需要添加其他類型的折扣,比如滿減或者贈品,我們只需要創(chuàng)建相應(yīng)的類,并且確保它們都符合同一個抽象接口。這樣,我們可以輕松地擴(kuò)展系統(tǒng)的功能,而不需要修改已有的代碼。

????????總結(jié)起來,開閉原則的目標(biāo)是讓我們能夠通過擴(kuò)展來改變一個系統(tǒng)的行為,而不需要修改已有的代碼。這樣可以提高代碼的穩(wěn)定性、可維護(hù)性和可擴(kuò)展性。

??依賴倒轉(zhuǎn)原則

????????依賴倒轉(zhuǎn)原則告訴我們高層模塊不應(yīng)該依賴于低層模塊,而是應(yīng)該依賴于抽象。

????????通俗地說,依賴倒轉(zhuǎn)原則就是要求我們在設(shè)計代碼時,盡量使用抽象類或者接口來進(jìn)行編程,而不是直接依賴具體的實(shí)現(xiàn)類。這樣做的好處是,可以降低模塊之間的耦合度,提高代碼的靈活性和可維護(hù)性。

????????舉個例子,假設(shè)我們有一個電商網(wǎng)站,其中有一個Order類用于處理訂單相關(guān)的邏輯。按照依賴倒轉(zhuǎn)原則,我們應(yīng)該定義一個抽象的Payment接口,然后讓Order類依賴于這個接口。具體的支付方式,比如支付寶、微信支付等,都應(yīng)該實(shí)現(xiàn)這個接口,并且提供自己的具體實(shí)現(xiàn)。

????????這樣做的好處是,當(dāng)我們需要更換支付方式時,比如從支付寶切換到微信支付,我們只需要創(chuàng)建一個新的實(shí)現(xiàn)類,并且修改配置文件或者注入相應(yīng)的實(shí)例即可,而不需要修改Order類的代碼。這樣,我們可以輕松地擴(kuò)展和變更系統(tǒng)的功能,而不會對其他模塊產(chǎn)生影響。

????????總結(jié)起來,依賴倒轉(zhuǎn)原則的核心思想是:高層模塊不應(yīng)該依賴于低層模塊,而是應(yīng)該依賴于抽象。通過使用抽象類或者接口來編程,可以降低模塊之間的耦合度,提高代碼的靈活性和可維護(hù)性。

??接口隔離原則

????????接口隔離原則告訴我們客戶端不應(yīng)該依賴于它不需要的接口

????????通俗地說,接口隔離原則就是要求我們將龐大而臃腫的接口拆分成更小、更具體的接口,以滿足客戶端的精確需求。這樣做的好處是,可以降低客戶端與接口之間的耦合度,提高代碼的靈活性和可維護(hù)性。

????????舉個例子,假設(shè)我們有一個電商網(wǎng)站,其中有一個Product類用于處理商品相關(guān)的邏輯。按照接口隔離原則,我們應(yīng)該將Product類的接口拆分成多個更小的接口,比如IProductInfo和IProductReview。這樣,客戶端只需要依賴于它們所需的接口,而不需要依賴整個Product類的接口。

????????這樣做的好處是,當(dāng)我們需要在客戶端中使用商品信息時,只需要實(shí)現(xiàn)IProductInfo接口即可,而不需要關(guān)心其他不需要的方法。同樣,當(dāng)我們需要在客戶端中使用商品評價時,只需要實(shí)現(xiàn)IProductReview接口即可。

????????通過接口隔離原則,我們可以避免客戶端依賴于不需要的接口,減少了對無用方法的依賴,提高了代碼的可讀性和可維護(hù)性。同時,接口隔離原則也促進(jìn)了代碼的復(fù)用,因?yàn)槲覀兛梢愿鶕?jù)需要選擇實(shí)現(xiàn)不同的接口。

總結(jié)起來,接口隔離原則的核心思想是:客戶端不應(yīng)該依賴于它不需要的接口。通過拆分龐大的接口,只提供客戶端所需的精確接口,可以降低耦合度,提高代碼的靈活性和可維護(hù)性

??迪米特法則

????????迪米特法則,也被稱為最少知識原則,它告訴我們一個對象應(yīng)該盡量減少與其他對象之間的交互,只與直接的朋友進(jìn)行通信。

????????通俗地說,迪米特法則就是要求我們在設(shè)計代碼時,盡量降低對象之間的耦合度,避免一個對象過多地了解其他對象的內(nèi)部細(xì)節(jié)。這樣做的好處是,可以提高代碼的可維護(hù)性和靈活性,減少對其他對象的依賴。

????????舉個例子,假設(shè)我們有一個電商網(wǎng)站,其中有一個Order類用于處理訂單相關(guān)的邏輯。按照迪米特法則,我們應(yīng)該盡量減少Order類與其他類的直接交互,只與必要的對象進(jìn)行通信,比如與Product類、Payment類等直接相關(guān)的對象。

????????這樣做的好處是,當(dāng)需要修改或者擴(kuò)展系統(tǒng)的某個功能時,我們只需要關(guān)注與之直接相關(guān)的對象,而不需要考慮其他無關(guān)的對象。這樣可以降低代碼的復(fù)雜度,提高代碼的可讀性和可維護(hù)性。

????????另外,迪米特法則還鼓勵使用中間對象來協(xié)調(diào)其他對象之間的交互,以減少對象之間的直接依賴關(guān)系。這樣可以提高系統(tǒng)的靈活性,降低耦合度。

????????總結(jié)起來,迪米特法則的核心思想是:一個對象應(yīng)該盡量減少與其他對象之間的交互,只與直接的朋友進(jìn)行通信。通過降低對象之間的耦合度,可以提高代碼的可維護(hù)性和靈活性,減少對其他對象的依賴。

??合成復(fù)用原則

????????合成復(fù)用原則告訴我們在設(shè)計代碼時,應(yīng)該優(yōu)先使用組合(composition)而不是繼承(inheritance)來實(shí)現(xiàn)復(fù)用。

????????通俗地說,合成復(fù)用原則就是要求我們通過將已有的類組合起來,構(gòu)建新的類來實(shí)現(xiàn)復(fù)用,而不是通過繼承已有的類。這樣做的好處是,可以減少類之間的耦合度,提高代碼的靈活性和可維護(hù)性。

????????舉個例子,假設(shè)我們有一個電商網(wǎng)站,其中有一個Order類用于處理訂單相關(guān)的邏輯。按照合成復(fù)用原則,我們應(yīng)該優(yōu)先使用組合來實(shí)現(xiàn)訂單的功能,而不是通過繼承已有的類。

????????具體來說,我們可以定義一個Order類,然后在該類中使用其他已有的類,比如Product類和Payment類,作為其成員變量。這樣,Order類就可以通過調(diào)用這些成員變量的方法來實(shí)現(xiàn)自己的功能,而不需要繼承這些類。

????????這樣做的好處是,當(dāng)我們需要修改或者擴(kuò)展系統(tǒng)的某個功能時,只需要關(guān)注與之相關(guān)的類,而不需要影響到其他類。同時,由于使用了組合而不是繼承,我們可以更加靈活地選擇和替換成員變量,以滿足不同的需求。

總結(jié)起來,合成復(fù)用原則的核心思想是:優(yōu)先使用組合而不是繼承來實(shí)現(xiàn)復(fù)用。通過將已有的類組合起來構(gòu)建新的類,可以降低耦合度,提高代碼的靈活性和可維護(hù)性。文章來源地址http://www.zghlxwxcb.cn/news/detail-649217.html

到了這里,關(guān)于設(shè)計模式之七大原則的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 1.設(shè)計模式之七大原則和介紹

    1.設(shè)計模式之七大原則和介紹

    0.為什么我要學(xué)習(xí)設(shè)計模式呢? 我發(fā)現(xiàn)mysql的jdbc有factory有工廠模式(編程思想,不指定語言都可以用) mq有一個QueueBuilder().setArg().xxx().build建造者模式,單例模式貌似也遇到過,前端也遇到了好幾個設(shè)計模式的問題,比如prototype深拷貝和淺拷貝 所以我決定系統(tǒng)的學(xué)習(xí)一下設(shè)計模式…

    2024年02月11日
    瀏覽(34)
  • 創(chuàng)建型模式 (Creational Patterns) 玄子Share 設(shè)計模式 GOF 全23種 + 七大設(shè)計原則

    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-NWLAOFtO-1691793071647)(./assets/%E7%8E%84%E5%AD%90Share%20%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%20GOF%20%E5%85%A823%E7%A7%8D%20+%20%E4%B8%83%E5%A4%A7%E8%AE%BE%E8%AE%A1%E5%8E%9F%E5%88%99.png)] GoF(Gang of Four)是四位計算機(jī)科學(xué)家(Erich Gamma、Ri

    2024年02月12日
    瀏覽(28)
  • 【設(shè)計模式】設(shè)計原則-里氏替換原則

    定義 任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。 通俗理解:子類可以擴(kuò)展父類的功能,但不能改變父類原有的功能。 換句話說,子類繼承父類時,除添加新的方法完成新增功能外,盡量不要重寫父類的方法。 針對的問題 主要作用就是規(guī)范繼承時子類的一些書寫規(guī)則。

    2024年02月14日
    瀏覽(30)
  • 【設(shè)計模式】設(shè)計原則-開閉原則

    定義 作用 1、方便測試;測試時只需要對擴(kuò)展的代碼進(jìn)行測試。 2、提高代碼的可復(fù)用性;粒度越小,被復(fù)用的可能性就越大。 3、提高軟件的穩(wěn)定性和延續(xù)性,易于擴(kuò)展和維護(hù)。 實(shí)現(xiàn)方式 通過“抽象約束、封裝變化”來實(shí)現(xiàn)開閉原則。通過接口或者抽象類為軟件實(shí)體定義一

    2024年02月15日
    瀏覽(24)
  • 前端設(shè)計模式和設(shè)計原則之設(shè)計原則

    1 開閉原則 該原則指出軟件實(shí)體(類、模塊、函數(shù)等)應(yīng)該 對擴(kuò)展開放,對修改關(guān)閉 。也就是說,在添加新功能時,應(yīng)該通過擴(kuò)展現(xiàn)有代碼來實(shí)現(xiàn),而不是直接修改已有的代碼。這樣可以確?,F(xiàn)有代碼的穩(wěn)定性,并且減少對其他部分的影響。 在上述例子中,有一個原始功能

    2024年02月07日
    瀏覽(51)
  • 【Java 設(shè)計模式】設(shè)計原則之開放封閉原則

    在軟件開發(fā)中,設(shè)計原則是創(chuàng)建靈活、可維護(hù)和可擴(kuò)展軟件的基礎(chǔ)。 這些原則為我們提供了指導(dǎo)方針,幫助我們構(gòu)建高質(zhì)量、易理解的代碼。 ?單一職責(zé)原則(SRP) ?開放/封閉原則(OCP) ?里氏替換原則(LSP) ?依賴倒置原則(DIP) ?接口隔離原則(ISP) ?合成/聚合復(fù)

    2024年02月02日
    瀏覽(61)
  • 【Java 設(shè)計模式】設(shè)計原則之里氏替換原則

    在軟件開發(fā)中,設(shè)計原則是創(chuàng)建靈活、可維護(hù)和可擴(kuò)展軟件的基礎(chǔ)。 這些原則為我們提供了指導(dǎo)方針,幫助我們構(gòu)建高質(zhì)量、易理解的代碼。 ?單一職責(zé)原則(SRP) ?開放/封閉原則(OCP) ?里氏替換原則(LSP) ?依賴倒置原則(DIP) ?接口隔離原則(ISP) ?合成/聚合復(fù)

    2024年01月20日
    瀏覽(37)
  • 設(shè)計模式——設(shè)計模式以及六大原則概述

    設(shè)計模式——設(shè)計模式以及六大原則概述

    設(shè)計模式代表有經(jīng)驗(yàn)的面向?qū)ο筌浖_發(fā)人員使用的最佳實(shí)踐。 設(shè)計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。 這些解決方案是由許多軟件開發(fā)人員在相當(dāng)長的時間內(nèi)通過試錯獲得的。 在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四

    2024年02月13日
    瀏覽(22)
  • 設(shè)計模式的設(shè)計原則

    設(shè)計模式的設(shè)計原則

    為什么需要設(shè)計模式? 我的理解設(shè)計模式就是一種針對某種問題的套路,是一套被反復(fù)使用,多數(shù)人所知曉的,經(jīng)過分類編目的,代碼設(shè)計經(jīng)驗(yàn)的總結(jié)。 1.開閉原則 1.1 定義: ????一個軟件實(shí)體應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉,即軟件實(shí)體應(yīng)盡量在不修改原有代碼下進(jìn)行擴(kuò)展

    2024年02月09日
    瀏覽(19)
  • 設(shè)計模式-原則篇-01.開閉原則

    設(shè)計模式-原則篇-01.開閉原則

    ? 可以把設(shè)計模式理解為一套比較成熟并且成體系的建筑圖紙,經(jīng)過多次編碼檢驗(yàn)?zāi)壳翱磥硎褂眯Ч€不錯的軟件設(shè)計方案。適用的場景也比較廣泛,在使用具體的設(shè)計模式之前先要學(xué)習(xí)軟件設(shè)計的基礎(chǔ) “軟件設(shè)計原則”,后面的23個設(shè)計模式都是遵從“軟件設(shè)計原則演變而

    2024年02月09日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包