在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

C語言專家集中營 ? 來源:未知 ? 作者:易水寒 ? 2018-06-10 09:25 ? 次閱讀

一. 單一職責原則

Single Responsibility Principle, 簡稱SRP。

定義

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

準則

職責的劃分?單一的定義和級別?

應該根據實際業務情況而定。關注變化點。

實際使用時,類很難做到職責單一,但是接口的職責應該盡量單一。

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

二. 里氏替換原則

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

準則

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

子類必須完全實現父類的方法

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

覆蓋或實現父類的方法時輸入參數可以被放大。

覆寫或實現父類的方法時輸出結果可以被縮小。

注:在類中調用其他類時務必要使用父類或接口,如果不能使用父類或接口,則說明類的設計已經違背了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.

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

高層模塊不應該依賴低層模塊,兩者都應該依賴其抽象

抽象不應該依賴細節。

細節應該依賴抽象。

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

案例

Test-Driven Development 測試驅動開發是依賴倒置原則的最好體現。

測試驅動開發要求先寫測試類,測試通過才寫實現類,這就要求你要先想接口定義。

依賴的三種寫法:

構造函數傳遞依賴對象。

Setter方法傳遞依賴對象。

接口聲明依賴對象。

最佳實踐:

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

四. 接口隔離原則:

接口這里指用interface關鍵字定義的接口。

定義:

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

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

準則

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

沒有統一的標準,應根據業務合理細分,適合業務才是重點。

保證接口的純結性:

接口要盡量小。接口要高內聚。定制服務。接口的設計是有限度的。

最佳實踐:

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

五.迪米特法則

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

定義:

一個對象應該對其他對象保持最少的了解。

準則:

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

低耦合要求:

只和朋友交流

朋友類:出現在成員變量、方法的輸入輸出參數中的類。方法體內部的類不屬于朋友類。

朋友間也是有距離的

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

是自己的就是自己的

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

謹慎使用Serializable

六.開閉原則

定義:

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

準則:

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

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口設計
    +關注

    關注

    2

    文章

    196

    瀏覽量

    29854
  • DIP
    DIP
    +關注

    關注

    0

    文章

    241

    瀏覽量

    30159
  • LSP
    LSP
    +關注

    關注

    0

    文章

    13

    瀏覽量

    9804

原文標題:接口設計六大原則

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

收藏 人收藏

    評論

    相關推薦

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

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

    如何選擇IDC服務商十大原則

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

    Python設計模式六大原則

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

    大原則,讓選對繼電器

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

    接口設計的6大原則都知道嗎?

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

    什么是設計模式?為什么要學習設計模式

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

    電路布線的基本六大原則

    發表于 03-28 18:37 ?1次下載

    設計模式原則及實現代碼的復用

    設計模式六大原則 開閉原則(Open Close Principle) 1988年,勃蘭特梅耶(Bertrand Meyer)在他的著作《面向對象軟件構造(Object Oriented
    發表于 09-26 15:12 ?0次下載

    JAVA設計模式六大原則

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

    一文匯總PCB電路設計的六大原則

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

    制造業組裝線設計必須要納入的五大原則

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

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

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

    工業傳感器選型的六大基本原則

    工業傳感器選型的六大基本原則
    的頭像 發表于 01-06 09:17 ?1120次閱讀

    電路布線的七大原則

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

    分布式存儲系統的七大原則之二:區分環境數據與業務數據

    在之前討論的分布式存儲系統七大原則的第一原則中,我們了解了容災切換和數據備份的差異。現在,我們繼續探索第二原則:區分環境數據與業務數據。這一原則
    的頭像 發表于 03-11 09:42 ?372次閱讀
    主站蜘蛛池模板: 国产不卡毛片| 五月天婷婷精品视频| 欧美在线视频一区二区三区| 日本三级最新中文字幕电影| 色老太视频| 日本高清视频在线www色| 99久久精品国产自免费| 欧美三级免费网站| 欧美午夜性春猛交bbb| 免费国产午夜在线观看| 天天综合色天天综合网| ts人妖系列在线专区| a级毛片免费网站| 国产精品伦理久久久久| 97色资源| 日日做日日摸夜夜爽| 国产自产视频在线观看香蕉| 天天狠狠干| 97理论片| 天天干夜夜爽天天操夜夜爽视频| 免费操人视频| 国产性videostv另类极品| 97天天操| 91福利网| 日本一区不卡在线观看| 色香欲亚洲天天综合网| 伊人98| 色网站欧美| 久久精品韩国三级| 在线看逼| 国产大片免费观看资源| 亚洲入口| 国语自产免费精品视频一区二区 | 国产全肉乱妇杂乱视频| 久久香蕉国产线看观看精品yw| 国产3p在线播放| 天天干天天插天天| 日本亚洲黄色| 欧美三级色图| 在线一区观看| 视频在线一区二区|