亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

Olivia / 3416人閱讀

摘要:單一職責(zé)原則開閉原則里氏替換原則依賴倒置原則接口隔離原則迪米特法則組合聚合復(fù)用原則單一職責(zé)原則高內(nèi)聚低耦合定義不要存在多于一個導(dǎo)致類變更的原因。建議接口一定要做到單一職責(zé),類的設(shè)計盡量做到只有一個原因引起變化。使用繼承時遵循里氏替換原則。

單一職責(zé)原則

開閉原則

里氏替換原則

依賴倒置原則

接口隔離原則

迪米特法則

組合/聚合復(fù)用原則

單一職責(zé)原則(Single Responsibility Principle)——高內(nèi)聚、低耦合
定義:不要存在多于一個導(dǎo)致類變更的原因。通俗的說,一個類只負(fù)責(zé)一項職責(zé),應(yīng)該僅有一個引起它變化的原因。
適用于:模塊、類、接口、方法。
優(yōu)點:
降低復(fù)雜度;提高可讀性,系統(tǒng)的可維護(hù)性;降低變更引起的風(fēng)險。
建議:接口一定要做到單一職責(zé),類的設(shè)計盡量做到只有一個原因引起變化。

開閉原則(Open Close Principle)—— 高內(nèi)聚、低耦合
定義:一個軟件實體如類、模塊和函數(shù)應(yīng)該對擴(kuò)展開放,對修改關(guān)閉。
面對新需求,對程序的改動是通過增加新代碼進(jìn)行的,而不是更改現(xiàn)有的代碼。
經(jīng)典的話說:過去的事已成為歷史,是不可修改的,因為時光不可倒流,但現(xiàn)在或明天計劃做什么,是可以自己決定(即擴(kuò)展)的。
怎樣的設(shè)計才能面對需求的改變卻可以保持相對穩(wěn)定,從而使得系統(tǒng)可以在第一個版本后不斷推出新的版本呢?開放-封閉。
在發(fā)生小的變化時,就及早去想辦法應(yīng)對發(fā)生更大變化的可能。
等到發(fā)生變化時立即采取行動。創(chuàng)建抽象來隔離以后發(fā)生的同類變化。
開發(fā)人員應(yīng)該對程序中頻繁變化的那部分做出抽象。
拒絕不成熟的抽象和抽象本身一樣重要。

里氏替換原則(Liskov Substitution Principle)——低耦合
定義:子類型必須能夠替換掉它們的父類型。
里氏替換原則通俗的來講就是:子類可以擴(kuò)展父類的功能,但不能改變父類原有的功能。
子類可以實現(xiàn)父類的抽象方法,但不能覆蓋父類的非抽象方法。
子類中可以增加自己特有的方法。
如果不遵循里氏替換原則,代碼出現(xiàn)問題的幾率會大大的增加。

依賴倒置原則(Dependence Inversion Principle)
定義:高層模塊不應(yīng)該依賴底層模塊,二者都應(yīng)該依賴其抽象;抽象不應(yīng)該依賴細(xì)節(jié);細(xì)節(jié)應(yīng)該依賴抽象;即針對接口編程,不要針對實現(xiàn)編程。
程序中所有的依賴關(guān)系都終止于抽象類或者接口,那就是面向?qū)ο蟮脑O(shè)計,反之那就是過程化的設(shè)計。
這個是開閉原則的基礎(chǔ)。
“面向接口編程”——OOD(Object-Oriented Design,面向?qū)ο笤O(shè)計)的精髓之一。
在實際編程中,我們一般需要做到如下3點:
底層模塊盡量都要有抽象類或接口,或者兩者都有。
變量的聲明類型盡量是抽象類或接口。
使用繼承時遵循里氏替換原則。

接口隔離原則(Interface Segregation Principle)——高內(nèi)聚
含義:建立單一接口,盡量細(xì)化接口,接口中的方法盡量少。
為各個類建立專用的接口。
在程序設(shè)計中,依賴幾個專用的接口要比依賴一個綜合的接口更靈活。
運用接口隔離原則,一定要適度,接口設(shè)計的過大或過小都不好。
設(shè)計接口的時候,只有多花些時間去思考和籌劃,才能準(zhǔn)確地實踐這一原則。

迪米特法則(Law Of Demeter)——松耦合
迪米特法則又叫最少知道原則,通俗的來講,就是一個類對自己依賴的類知道的越少越好。
也就是說,對于被依賴的類來說,無論邏輯多么復(fù)雜,都盡量地的將邏輯封裝在類的內(nèi)部,對外除了提供的public方法,不對外泄漏任何信息。
迪米特法則還有一個更簡單的定義:只與直接的朋友通信。
一句話總結(jié)就是:一個對象應(yīng)該對其他對象保持最少的了解。

組合/聚合復(fù)用原則(Composition/Aggregation Reuse Principle )——松耦合
盡量使用合成和聚合,而不是集成來達(dá)到復(fù)用的目的。
該原則就是在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分,新的對象通過向這些對象的委派達(dá)到復(fù)用已有功能的目的。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/68401.html

相關(guān)文章

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

    摘要:引申意義子類可以擴(kuò)展父類的功能,但不能改變父類原有的功能。含義當(dāng)子類的方法實現(xiàn)父類的方法時重寫重載或?qū)崿F(xiàn)抽象方法,方法的后置條件即方法的輸出返回值要比父類更嚴(yán)格或相等。優(yōu)點約束繼承泛濫,開閉原則的一種體現(xiàn)。降低需求變更時引入的風(fēng)險。 0x01.開閉原則 定義:一個軟件實體如類,模塊和函數(shù)應(yīng)該對擴(kuò)展開放,對修改關(guān)閉 要點: 當(dāng)變更發(fā)生時,不要直接修改類,而是通過繼承擴(kuò)展的方式完成變...

    ixlei 評論0 收藏0
  • java七大設(shè)計原則

    摘要:在我們做系統(tǒng)設(shè)計時,經(jīng)常會設(shè)計接口或抽象類,然后由子類來實現(xiàn)抽象方法,這里使用的其實就是里氏替換原則。 1.開閉原則(Open Close Principle/OCP) 定義:一個類、模塊和函數(shù)應(yīng)該對擴(kuò)展開放,對修改關(guān)閉。 開放-封閉原則的意思就是說,你設(shè)計的時候,時刻要考慮,盡量讓這個類是足夠好,寫好了就不要去修改了,如果新需求來,我們增加一些類就完事了,原來的代碼能不動則不動。這個...

    Prasanta 評論0 收藏0
  • php設(shè)計模式

    摘要:我們今天也來做一個萬能遙控器設(shè)計模式適配器模式將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。今天要介紹的仍然是創(chuàng)建型設(shè)計模式的一種建造者模式。設(shè)計模式的理論知識固然重要,但 計算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進(jìn)行操作,第二類是返回一個容器接口對象,上節(jié)我們介紹了...

    Dionysus_go 評論0 收藏0
  • php設(shè)計模式

    摘要:我們今天也來做一個萬能遙控器設(shè)計模式適配器模式將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。今天要介紹的仍然是創(chuàng)建型設(shè)計模式的一種建造者模式。設(shè)計模式的理論知識固然重要,但 計算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進(jìn)行操作,第二類是返回一個容器接口對象,上節(jié)我們介紹了...

    vspiders 評論0 收藏0
  • 5分鐘學(xué)會Java9-Java11的七大新特性

    摘要:來來來,花分鐘看看的七大新特性,還有代碼樣例。本地是指方法內(nèi)的變量聲明。從開始,這個正式進(jìn)入標(biāo)準(zhǔn)庫包。同步請求會阻止當(dāng)前線程。可喜的是,如果嘗試改變不可變集合,會通過發(fā)出警告是在中引入的,增加了三個新方法。 現(xiàn)在Java有多元化的發(fā)展趨勢,既有JS又有C++還有C#的影子,不學(xué)習(xí)那是不行滴。來來來,花5分鐘看看Java9-Java11的七大新特性,還有代碼樣例。Java11 發(fā)布了,然...

    xuhong 評論0 收藏0

發(fā)表評論

0條評論

Olivia

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<