奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

php語言

程序接口設(shè)計(jì)六大原則

時(shí)間:2025-01-18 14:04:11 php語言 我要投稿

程序接口設(shè)計(jì)六大原則

  年輕時(shí)謀求,到老年就充實(shí)。以下是小編為大家搜索整理的程序接口設(shè)計(jì)六大原則,希望能給大家?guī)韼椭?更多精彩內(nèi)容請及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

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

Single Responsibility Principle, 簡稱SRP。

定義:There should never be more than one reason for a class to change.

應(yīng)該有且僅有一個(gè)原因引起類的變更。

職責(zé)的劃分?單一的定義和級別?

應(yīng)該根據(jù)實(shí)際業(yè)務(wù)情況而定。關(guān)注變化點(diǎn)。

實(shí)際使用時(shí),類很難做到職責(zé)單一,但是接口的職責(zé)應(yīng)該盡量單一。

二.里氏替換原則

Liskov Substitution Principle, 簡稱LSP。

定義:Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.

(所有引用基類的地方必須能透明地使用其子類的對象)

里氏替換原則為良好的繼承定義了一個(gè)規(guī)范:

1.子類必須完全實(shí)現(xiàn)父類的方法

2.子類可以有自己的個(gè)性(屬性和方法)。

3.覆蓋或?qū)崿F(xiàn)父類的方法時(shí)輸入?yún)?shù)可以被放大。

4.覆寫或?qū)崿F(xiàn)父類的方法時(shí)輸出結(jié)果可以被縮小。

注:在類中調(diào)用其他類時(shí)務(wù)必要使用父類或接口,如果不能使用父類或接口,則說明類的設(shè)計(jì)已經(jīng)違背了LSP原則。

三.依賴倒置原則

Dependence Inversion Principle, 簡稱DIP

定義:High level modules should not depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstractions.

翻譯過來,包含三層含義:

1.高層模塊不應(yīng)該依賴低層模塊,兩者都應(yīng)該依賴其抽象。

2.抽象不應(yīng)該依賴細(xì)節(jié)。

3.細(xì)節(jié)應(yīng)該依賴抽象。

精簡的定義: 面向接口編程。

Test-Driven Development 測試驅(qū)動(dòng)開發(fā)是依賴倒置原則的最好體現(xiàn)。

測試驅(qū)動(dòng)開發(fā)要求先寫測試類,測試通過才寫實(shí)現(xiàn)類,這就要求你要先想接口定義。

依賴的三種寫法:

1.構(gòu)造函數(shù)傳遞依賴對象。

2.Setter方法傳遞依賴對象。

3.接口聲明依賴對象。

最佳實(shí)踐:
1.每個(gè)類盡量都有接口或抽象類,或者抽象類和接口兩者都具備。
2.變量的表面類型盡量是接口或抽象類。
3.任何類都不應(yīng)該從具體類派生。
4.盡量不要覆寫基類的方法。
5.結(jié)合里氏替換原則使用。

四.接口隔離原則:
接口–這里指用interface關(guān)鍵字定義的接口。
定義:
1.Clients should not be forced to depend upon interfaces that they don’t use.(客戶端不應(yīng)該依賴它不需要的接口)
2.The dependency of one class to anther one should depend on the smallest possible interface.(類間的依賴關(guān)系應(yīng)該建立在最小的接口上)

概括:建立單一接口,不要建立臃腫龐大的接口。

通俗來講:接口盡量細(xì)化,同時(shí)接口中的方法盡量少。

如何細(xì)化?細(xì)化到什么程序?

沒有統(tǒng)一的標(biāo)準(zhǔn),應(yīng)根據(jù)業(yè)務(wù)合理細(xì)分,適合業(yè)務(wù)才是重點(diǎn)。

保證接口的純結(jié)性:
1.接口要盡量小。
2.接口要高內(nèi)聚。
3.定制服務(wù)。
4.接口的設(shè)計(jì)是有限度的。

最佳實(shí)踐:
1.一個(gè)接口只服務(wù)于一個(gè)子模塊或業(yè)務(wù)邏輯。
2.通過業(yè)務(wù)邏輯壓縮接口中的public方法,接口時(shí)常去回顧,盡量讓接口達(dá)到“滿身筋骨肉”,而不是“肥嘟嘟”的一大堆方法。
3.已經(jīng)被污染了的接口,盡量去修改,若變更的風(fēng)險(xiǎn)較大,則采用適配器模式進(jìn)行轉(zhuǎn)化處理。
4.了解環(huán)境,拒絕盲從。每個(gè)項(xiàng)目或產(chǎn)品都有特定的環(huán)境因素,不要盲從大師的設(shè)計(jì),要根據(jù)業(yè)務(wù)邏輯進(jìn)行最好的接口設(shè)計(jì)。

五.迪米特法則
Law of Demeter, LOD。又稱最少知識(shí)原則(Least Knowledge Principle, LKP)。
通俗來講:一個(gè)類應(yīng)該對自己需要耦合或調(diào)用的類知道得最少,你(被耦合或調(diào)用的類)的內(nèi)部是如何復(fù)雜都和我沒有關(guān)系,那是你的事情,我就調(diào)用你提供的public方法,其他一概不關(guān)心。

低耦合要求:
1.只和朋友交流
朋友類:出現(xiàn)在成員變量、方法的輸入輸出參數(shù)中的類。方法體內(nèi)部的類不屬于朋友類。
2.朋友間也是有距離的
迪米特法則要求類“羞澀”一點(diǎn),盡量不要對外公布太多的public方法和非靜態(tài)的public變量,盡量內(nèi)斂,多使用private、package-private、protected等訪問權(quán)限。
3.是自己的就是自己的
如果一個(gè)方法放在本類中,既不增加類間關(guān)系,也對本類不產(chǎn)生負(fù)面影響,就放置在本類中。
4.謹(jǐn)慎使用Serializable

六.開閉原則
Software entities like classes, modules and functions should be open for extension but closed for modifications.(一個(gè)軟件實(shí)體如類、模塊和函數(shù)應(yīng)該對擴(kuò)展開放,對修改關(guān)閉)

軟件實(shí)體包括以下幾個(gè)部分:
1.項(xiàng)目和軟件產(chǎn)品中按照一定的邏輯規(guī)則劃分的模塊。
2.抽象和類。
3.方法。

變化的三種類型:
1.邏輯變化
2.子模塊變化
3.可見視圖變化

【程序接口設(shè)計(jì)六大原則】相關(guān)文章:

六大程序接口設(shè)計(jì)原則07-06

程序接口設(shè)計(jì)6大原則10-26

交互設(shè)計(jì)中六大通用原則06-03

網(wǎng)頁設(shè)計(jì)的原則06-13

簡潔的網(wǎng)頁設(shè)計(jì)原則09-07

2017薪酬設(shè)計(jì)原則06-28

設(shè)計(jì)的一般原則教學(xué)設(shè)計(jì)06-22

移動(dòng)網(wǎng)頁設(shè)計(jì)原則06-14

網(wǎng)頁設(shè)計(jì)黃金配色原則08-07

主站蜘蛛池模板: 闽侯县| 和平区| 汽车| 临桂县| 庄河市| 长宁县| 扎鲁特旗| 大化| 贺州市| 疏勒县| 固阳县| 寻乌县| 石棉县| 大化| 墨脱县| 新河县| 固镇县| 南川市| 秦安县| 石嘴山市| 无锡市| 郎溪县| 西昌市| 南充市| 昂仁县| 合水县| 陇南市| 光山县| 胶州市| 西平县| 张家口市| 军事| 和平县| 修武县| 治县。| 盐山县| 增城市| 汤阴县| 绥滨县| 泊头市| 广宁县|