`

高內聚、低耦合。多聚合、少繼承

    博客分类:
  • J2EE
 
阅读更多
面向對象原則:高內聚、低耦合。多聚合、少繼承
2015-05-28 18:13:00
  面向對象的基本原則:多聚合,少繼承。低耦合,高內聚.

一、高內聚、低耦合
1、概述:
內聚:每個模塊儘可能獨立完成自己的功能,不依賴於模塊外部的代碼。

耦合:模塊與模塊之間接口的複雜程度,模塊之間聯繫越複雜耦合度越高,牽一髮而動全身。

目的:使得模塊的「可重用性」、「移植性」大大增強

通常程序結構中各模塊的內聚程度越高,模塊間的耦合程度就越低

2、模塊粒度:
1)函數

高內聚:儘可能類的每個成員方法只完成一件事(最大限度的聚合)

低耦合:減少類內部,一個成員方法調用另一個成員方法

2)類

高內聚低耦合:減少類內部,對其他類的調用

3)功能塊

高內聚低耦合:減少模塊之間的交互複雜度(接口數量,參數數據)

橫向:類與類之間、模塊與模塊之間

縱向:層次之間

儘可能,內容內聚,數據耦合

二、多聚合、少繼承
聚合:事物A由若干個事物B組成,體現在類與類之間的關係就是:「類B的實例」作為「類A」的「成員對象」出現。(不就是內部類嘛,意思就是多使用內部類,也不一定是內部類,可能該類的一個成員變量是另一個類的對象,少使用繼承extends)

繼承:顧名思義,體現在類與類之間的關係就是:「類B」被類A所繼承

顯然,當觀察類B所具有的行為能力時,「聚合」方式更加清晰。

典型應用:java適配器模式中,優選「對象適配器」,而不是「類適配器」


原文網址:https://read01.com/GBe76m.html
分享到:
评论

相关推荐

    企业java工程师测试题

    其他特征:抽象关联,聚合,组合,内聚,耦合 2. String是最基本的数据类型吗? String 和StringBuffer的区别? 答案:String不是一最基本的数据类型。 STRING的长度是不可变的,STRINGBUFFER的长度是可变的。 如果...

    软件工程-理论与实践(许家珆)习题答案

    D) 以较低的成本开发出高质量的软件 二、 判断题 1. 软件就是程序,编写软件就是编写程序。(×) 2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。(×) 3. 结构化方法的工作模型是使用螺旋模型进行...

    UML和模式应用(架构师必备).part01.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part07.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part02.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part06.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part03.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part04.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part05.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    UML和模式应用(架构师必备).part08.rar

    17.14 高内聚 17.15 参考资料 第18章 使用GRASP的对象设计示例 18.1 什么是用例实现 18.2 制品注释 18.3 下一步工作 18.4 NextGen迭代的用例实现 18.5 Monopoly迭代的用例实现 18.6 过程:迭代和进化式对象...

    C#23种设计模式_示例源代码及PDF

    桥梁模式:将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关 桥梁模式 联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是 继承关系,从而使两者可以独立的...

Global site tag (gtag.js) - Google Analytics