一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

接口設(shè)計設(shè)計模式的六大原則你了解嗎?

C語言專家集中營 ? 來源:未知 ? 作者:易水寒 ? 2018-06-10 09:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

Single Responsibility Principle, 簡稱SRP。

定義

There should never be more than one reason for a class to change應(yīng)該有且僅有一個原因引起類的變

準則

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

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

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

接口設(shè)計設(shè)計模式的六大原則你了解嗎?

二. 里氏替換原則

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所有引用基類的地方必須能透明地使用其子類的對象

準則

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

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

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

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

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

注:在類中調(diào)用其他類時務(wù)必要使用父類或接口,如果不能使用父類或接口,則說明類的設(shè)計已經(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.

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

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

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

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

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

案例

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

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

依賴的三種寫法:

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

Setter方法傳遞依賴對象。

接口聲明依賴對象。

最佳實踐:

每個類盡量都有接口或抽象類,或者抽象類和接口兩者都具備。變量的表面類型盡量是接口或抽象類。任何類都不應(yīng)該從具體類派生。盡量不要覆寫基類的方法。結(jié)合里氏替換原則使用。

四. 接口隔離原則:

接口這里指用interface關(guān)鍵字定義的接口。

定義:

Clients should not be forced to depend upon interfaces that they don’t use.(客戶端不應(yīng)該依賴它不需要的接口)The dependency of one class to anther one should depend on the smallest possible interface.(類間的依賴關(guān)系應(yīng)該建立在最小的接口上)概括:建立單一接口,不要建立臃腫龐大的接口。

通俗來講:接口盡量細化,同時接口中的方法盡量少。

準則

如何細化?細化到什么程序?

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

保證接口的純結(jié)性:

接口要盡量小。接口要高內(nèi)聚。定制服務(wù)。接口的設(shè)計是有限度的。

最佳實踐:

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

五.迪米特法則

Law of Demeter, LOD。又稱最少知識原則(Least Knowledge Principle, LKP)。

定義:

一個對象應(yīng)該對其他對象保持最少的了解。

準則:

通俗來講:一個類應(yīng)該對自己需要耦合或調(diào)用的類知道得最少,你(被耦合或調(diào)用的類)的內(nèi)部是如何復(fù)雜都和我沒有關(guān)系,那是你的事情,我就調(diào)用你提供的public方法,其他一概不關(guān)心。

低耦合要求:

只和朋友交流

朋友類:出現(xiàn)在成員變量、方法的輸入輸出參數(shù)中的類。方法體內(nèi)部的類不屬于朋友類。

朋友間也是有距離的

迪米特法則要求類“羞澀”一點,盡量不要對外公布太多的public方法和非靜態(tài)的public變量,盡量內(nèi)斂,多使用private、package-private、protected等訪問權(quán)限。

是自己的就是自己的

如果一個方法放在本類中,既不增加類間關(guān)系,也對本類不產(chǎn)生負面影響,就放置在本類中。

謹慎使用Serializable

六.開閉原則

定義:

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

準則:

軟件實體包括以下幾個部分:

項目和軟件產(chǎn)品中按照一定的邏輯規(guī)則劃分的模塊。抽象和類。方法。變化的三種類型:

邏輯變化子模塊變化可見視圖變化

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口設(shè)計
    +關(guān)注

    關(guān)注

    2

    文章

    197

    瀏覽量

    30298
  • DIP
    DIP
    +關(guān)注

    關(guān)注

    0

    文章

    248

    瀏覽量

    31056
  • LSP
    LSP
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    9980

原文標(biāo)題:接口設(shè)計六大原則

文章出處:【微信號:C_Expert,微信公眾號:C語言專家集中營】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    軟件測試的7大原則漏了幾條?

    軟件測試報告最需要注意的就是測試思考,而非測試執(zhí)行。而對軟件測試菜鳥來說,初入行,首先要知道軟件測試的7條原則,了解這些可以讓事倍功半。 1測試的不可窮盡原則 是的!任何產(chǎn)品不可能被
    發(fā)表于 01-18 09:39

    如何選擇IDC服務(wù)商十大原則

    如何選擇IDC服務(wù)商十大原則現(xiàn)在擁有網(wǎng)站的企業(yè)或者個人越來越多,對服務(wù)器的需求有增無減,如何選擇理想的IDC服務(wù)商,自然成了他們首要考慮的問題。筆者就此問題,介紹了一些必要的技巧,并概括為選IDC
    發(fā)表于 01-21 12:03

    Python設(shè)計模式六大原則

    Segregation Principle)這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。還是一個降低類之間的耦合度的意思,從這兒我們看出,其實設(shè)計模式就是一個軟件的設(shè)計
    發(fā)表于 05-07 18:10

    大原則,讓選對繼電器

    。但是繼電器品類眾多,如何挑選優(yōu)質(zhì)的繼電器成了一個難題。誰才是國民PICK?三大原則,選對繼電器在《創(chuàng)造101》中,女團的出道經(jīng)過了導(dǎo)師和女團創(chuàng)始人的層層把關(guān),綜合各方面考慮才篩選出最終的11位成員
    發(fā)表于 08-01 20:21

    接口設(shè)計的6大原則,都知道嗎?

    污染了的接口,盡量去修改,若變更的風(fēng)險較大,則采用適配器模式進行轉(zhuǎn)化處理。了解環(huán)境,拒絕盲從。每個項目或產(chǎn)品都有特定的環(huán)境因素,不要盲從大師的設(shè)計,要根據(jù)業(yè)務(wù)邏輯進行最好的接口設(shè)計。五
    發(fā)表于 04-20 08:00

    什么是設(shè)計模式?為什么要學(xué)習(xí)設(shè)計模式

    怎么使用設(shè)計模式21種設(shè)計模式設(shè)計模式的遵循的六大原則設(shè)計模式之工廠模式.NET CORE微信掃
    發(fā)表于 01-19 06:41

    電路布線的基本六大原則

    發(fā)表于 03-28 18:37 ?1次下載

    設(shè)計模式原則及實現(xiàn)代碼的復(fù)用

    設(shè)計模式六大原則 開閉原則(Open Close Principle) 1988年,勃蘭特梅耶(Bertrand Meyer)在他的著作《面向?qū)ο筌浖?gòu)造(Object Oriented
    發(fā)表于 09-26 15:12 ?0次下載

    JAVA設(shè)計模式六大原則

    單一職責(zé)原則:不要存在多于一個導(dǎo)致類變更的原因。通俗的說,即一個類只負責(zé)一項職責(zé)。 問題由來:類T負責(zé)兩個不同的職責(zé):職責(zé)P1,職責(zé)P2。當(dāng)由于職責(zé)P1需求發(fā)生改變而需要修改類T時,有可能會導(dǎo)致原本運行正常的職責(zé)P2功能發(fā)生故障。
    發(fā)表于 11-27 11:23 ?9083次閱讀
    JAVA設(shè)計<b class='flag-5'>模式</b><b class='flag-5'>六大原則</b>

    一文匯總PCB電路設(shè)計的六大原則

    ,可能會出現(xiàn)一些問題,甚至很可能帶來嚴重的電路性能問題。本文主要介紹的是PCB電路設(shè)計的六大原則,具體的跟隨小編來了解一下。
    發(fā)表于 05-04 15:50 ?6640次閱讀
    一文匯總PCB電路設(shè)計的<b class='flag-5'>六大原則</b>

    制造業(yè)組裝線設(shè)計必須要納入的五大原則

    隨著全球制造業(yè)積極尋求競爭力后,許多業(yè)者也開始在運轉(zhuǎn)作過程中設(shè)法達到精益生產(chǎn)(Lean Manufacturing)目的。據(jù)Automation World報導(dǎo),廠商在現(xiàn)有組裝線設(shè)計內(nèi)可引進五大原則,將可達到避免制程浪費與提升產(chǎn)品質(zhì)量的目的。
    發(fā)表于 07-22 09:39 ?1896次閱讀

    設(shè)計模式(1)—什么是設(shè)計模式?設(shè)計模式六大原則是什么?

    目錄1.什么設(shè)計模式2.設(shè)計模式的發(fā)展3.設(shè)計原則6大原則3.1 開閉原則3.2 里氏轉(zhuǎn)換原則3
    發(fā)表于 11-07 09:51 ?8次下載
    設(shè)計<b class='flag-5'>模式</b>(1)—什么是設(shè)計<b class='flag-5'>模式</b>?設(shè)計<b class='flag-5'>模式</b>的<b class='flag-5'>六大原則</b>是什么?

    工業(yè)傳感器選型的六大基本原則

    工業(yè)傳感器選型的六大基本原則
    的頭像 發(fā)表于 01-06 09:17 ?1497次閱讀

    電路布線的七大原則

    電路布線的七大原則? 電路布線是電子設(shè)計中非常重要的一環(huán),它直接影響著電路的性能和穩(wěn)定性。因此,在進行電路布線的時候,需要遵循七大原則,這些原則包括電磁兼容性、信號傳輸、電源噪聲、熱管理、機械可靠性
    的頭像 發(fā)表于 10-27 10:26 ?1626次閱讀

    分布式存儲系統(tǒng)的七大原則之二:區(qū)分環(huán)境數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù)

    在之前討論的分布式存儲系統(tǒng)七大原則的第一原則中,我們了解了容災(zāi)切換和數(shù)據(jù)備份的差異?,F(xiàn)在,我們繼續(xù)探索第二原則:區(qū)分環(huán)境數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù)。這一原則
    的頭像 發(fā)表于 03-11 09:42 ?594次閱讀