高內聚,低耦合不錯的例子
接口,再設計上跟類型是同樣的東西,就是類型。在設計上並不糾結什麼.net 編程術語,而是各種OO語言都公認的基本術語。
所以“寫接口、寫父類、寫抽象類”,以及一大堆其它說法(比如說.net根本不支持的多重繼承技術),都是一樣的東西——可以用來降低耦合、保證高內聚地封裝。
比如說你開發一個通用的 ATM 程序,面對5種大類、25種小類,假設有500種不同的銀行卡處理流程,你要寫500個程序嗎?不是的。你首先寫了一個ATM 流程父類,然後5種大類的差別在子類中重寫,然後25種小類與其大類的差別又分別在小類中進行重寫,然後每一種銀行卡的一點點差別又分別在每一個銀行卡類中進行重寫。
假設有1000個人跟這500種銀行卡發生關係,是要考慮 50萬種情況嗎?不是的。因爲ATM 只有一種——所有的銀行卡都是它的子類,因此具體的銀行卡流程是通過父類給外界打交道的。
分層擴展,繼承和多態,就是保證高內聚低耦合的一種設計手段。
所以“寫接口、寫父類、寫抽象類”,以及一大堆其它說法(比如說.net根本不支持的多重繼承技術),都是一樣的東西——可以用來降低耦合、保證高內聚地封裝。
比如說你開發一個通用的 ATM 程序,面對5種大類、25種小類,假設有500種不同的銀行卡處理流程,你要寫500個程序嗎?不是的。你首先寫了一個ATM 流程父類,然後5種大類的差別在子類中重寫,然後25種小類與其大類的差別又分別在小類中進行重寫,然後每一種銀行卡的一點點差別又分別在每一個銀行卡類中進行重寫。
假設有1000個人跟這500種銀行卡發生關係,是要考慮 50萬種情況嗎?不是的。因爲ATM 只有一種——所有的銀行卡都是它的子類,因此具體的銀行卡流程是通過父類給外界打交道的。
分層擴展,繼承和多態,就是保證高內聚低耦合的一種設計手段。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
java線程併發庫
ThreadLocal的使用,,,實際上相當於維護了一個Map,其中以鍵值對的形式,存儲了某一個數據被多個線程訪問所對應的值。當然這個數據只能有
xinyetonghua
2020-07-08 12:36:33
分佈式系統各個節點狀態如何同步?淺談一下
毛发旺盛的程序员
2020-07-08 12:27:30
ZooKeeper 一致性協議 ZAB 原理,瞭解一下
毛发旺盛的程序员
2020-07-08 12:27:20
Spring中Transactional 失效的解決方案,讓我們一起探討一下
毛发旺盛的程序员
2020-07-08 12:27:20
太狠了,Spring全家桶筆記,一站式通關全攻略,已入職某廠漲薪18K
毛发旺盛的程序员
2020-07-08 12:27:20
java中的NAN和INFINITY java中的NAN和INFINITY
a318013800
2021-11-28 13:09:28
【Java 小白菜入門筆記 2.2】常用的類和方法
江户川柯壮
2020-07-08 12:39:29
springboot增量打包更新--靜態資源分離打包
CNOYG
2020-07-08 12:39:29
增加FastDfs多文件存儲路徑
pengdayong77
2020-07-08 12:37:23
JSONArray指定日期的反序列化
JSONArray序列化日期最初用到, 這個是全局設置,會有風險。 String[] dateFormats = new String[] {"yyyyMMdd"}; JSONUtils.getM
pengdayong77
2020-07-08 12:37:23
java緩存對象,使之不需要每次都從數據庫中獲取,以提高程序性能
pengdayong77
2020-07-08 12:37:23
大數據入門(七)win10上eclipse使用Hadoop的配置
33 Audrey
2020-07-08 12:35:23
Java動態綁定機制經典案列理解
柘月十七
2020-07-08 12:33:16