`
张江兴
  • 浏览: 122509 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

设计模式:低耦合,高内聚

阅读更多

我是一个JAVA初学者,以前只知道把程序写完写出来就好,再加上足够多的注解就算完成了,从不关心程序是否写的合理,更不知道什么叫设计模式,更不要说是低耦合,高内聚是什么东西,直到培训的老师讲到这,才开始找资料来看,顺便写下自己的理解;

1.低耦合

 先要知道什么是耦合,耦合是元素对其他元素的依赖,连接的度量;一个元素必须在另一个元素存在时才能正常工作,或者有调用另一个元素中的方法,或者与另一个元素相关就说这两个元素耦合;像我们编写JAVA程序中的类就有如下几种情况是耦合:

1.元素B是元素A的属性,或者元素A引用了元素B的实例(这包括元素A调用的某个方法,其参数中包含元素B

2.元素A调用了元素B的方法

3.元素A直接或间接成为元素B的子类

4.元素A是接口B的实现

耦合使得我们和代码可变性低,因为代码中的元素相耦合,使得在一个类要变的情况下其他的类也必须做出相应的变动,这使我们的代码的重复利用变得很麻烦,有时甚至一点小改动而导致代码要重头写;

正是耦合的不足,才强调要低耦合,元素要完全独立是不可能的,我们只能从中找到一个平衡点,尽量和使我们的代码耦合度低,我觉得在写代码时可以多使用接口而不是继承,因为继承就是一种耦合,如果子类A继承了父类B,不论是直接或间接的继承,子类A都必将依赖父类B;子类A必须使用在存在父类B的环境中,父类B不存在子类A就不能使用,这样将影响子类A的可移植性。一旦父类B发生任何变更,更改或去掉一个函数名,或者改变一个函数的参数,都将导致子类A不得不变更,甚至重写。假如父类B的子类数十上百个,甚至贯穿这个项目各个模块,这样的变更是灾难性的;这只是一种不成熟的方法,真正要达到高手的地步,还是要多积累经验,所谓熟能生巧嘛!

2.高内聚

内聚:一个模块内各个元素彼此结合的紧密程度;与耦合相反,内聚是在一个模块中,而耦合是强调整个项目中各模块的之间的关系;在一个模块中各个元素结合的越紧密,代码质量越高;在程序设置中高内聚就是要程序模块内、类内要保持高度的联系,也就是属性间、方法间、属性方法间要高度紧密、不能脱离联系。要么方法中应该存在某些属性的参数,要么属性中要返回方法的结果,这样能够充分调用代码,减少代码的冗余。

<!--EndFragment-->

  • 大小: 6 KB
分享到:
评论

相关推荐

    高内聚低耦合

    5. **遵循设计模式**:利用已有的设计模式(如工厂模式、单例模式等)来解决常见的设计问题,这些模式本身就是高内聚低耦合思想的体现。 ### 结论 高内聚低耦合不仅是软件设计的基本原则之一,也是提高软件质量、...

    论文:高内聚低耦合软件架构的构建_程春蕊

    设计模式是软件设计中的重要工具,论文可能会提及一些经典的设计模式,如工厂模式、观察者模式、装饰器模式等,这些模式都是在特定场景下,为实现高内聚和低耦合提供了解决方案。例如,工厂模式可以隐藏对象创建的...

    图解高内聚与低耦合.docx

    - **低内聚**:低内聚的模块包含多个不相关或关联较弱的功能,这种情况下,当需求发生变化时,修改代码可能会带来意外的影响。 #### 接口设计原则 为了实现高内聚和低耦合,接口的设计至关重要。良好的接口设计能够...

    android高内聚低耦合任务事件总线框架

    "android高内聚低耦合任务事件总线框架"是指利用事件总线(Event Bus)模式来实现应用组件间的通信,同时遵循高内聚和低耦合的原则。本文将深入探讨这个主题。 **高内聚**指的是一个类或模块中的功能紧密相关,只...

    一个学生管理系统的demo 高内聚 低耦合

    《学生管理系统Demo:高内聚与低耦合的实践》 在软件工程中,高内聚和低耦合是衡量系统设计质量的重要原则。本文将深入探讨如何在C#环境中,通过一个学生管理系统的示例(demo)来实现这两个概念,并分析其中的关键...

    如何在struts+spring+hibernate的框架下构建低耦合高内聚的软件

    这个框架组合常被称为SSH(Struts-Spring-Hibernate)架构,用于构建高度模块化、低耦合、高内聚的Web应用程序。 Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,主要用于处理用户请求和...

    (优化2)android高内聚低耦合任务事件总线框架

    在Android开发中,高内聚低耦合是一个重要的设计原则,它能提升代码的质量和可维护性。"(优化2)android高内聚低耦合任务事件总线框架"这个标题暗示了我们要讨论的是如何利用事件总线来优化任务处理,以实现更好的...

    Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析1

    2. 松耦合高内聚:Tomcat 中的设计模式也体现了松耦合高内聚的原则,例如在 Server.xml 文件中,我们可以看到许多组件之间的交互,这使得 Tomcat 的架构更加灵活和可扩展。 3. 面向对象:Tomcat 中的设计模式也体现...

    耦合内聚.zip

    本文将深入探讨这两个概念,并结合"耦合内聚.zip"中的文档内容进行详细阐述。 首先,耦合(Coupling)是指软件系统中不同模块之间的相互依赖程度。它描述了模块间的连接强度,是衡量模块间独立性的一个重要标准。...

    Java EE设计模式:Spring企业级开发最佳实践

    6.AOP Pattern:面向方面编程模式,提供一种将跨cutting concerns(횡断关注点)分离出来的方式,实现高内聚、低耦合的设计。 在 Spring 中,AOP 是框架的核心部分,提供了一个 AspectJ 语言来实现面向方面编程,...

    高内聚低耦合原则_动力节点Java学院整理

    在实际开发中,高内聚低耦合原则可以指导我们如何设计和编写代码,例如,我们可以使用接口隐藏实现的细节,使用抽象类或接口来定义模块的功能,使用依赖注入来降低耦合度,使用设计模式来提高代码的可读性和可维护性...

    UiAdmin是一套渐进式模块化开源后台,采用前后端分离技术,数据交互采用json格式,功能低耦合高内聚;核心模块支.zip

    4. **低耦合高内聚**:低耦合意味着系统各部分之间的依赖关系减少,这有助于减少组件间的相互影响,提升系统的稳定性和可修改性。高内聚则是指每个模块内部的元素紧密相关,职责明确,增强了模块的功能独立性。 5. ...

    软件工程_高耦和、低内聚

    ### 软件工程中的高耦合与低内聚 在软件工程领域,"高耦合、低内聚"是一个非常重要的概念。该概念强调了软件设计时各个组成部分之间的关系和交互方式。为了更好地理解这一概念,我们首先需要了解一些基本的定义。 ...

    耦合和单例模式的理解

    #### 高内聚和低耦合 在软件工程领域中,**高内聚**与**低耦合**是衡量系统设计质量的重要标准。高内聚指的是一个模块内部的功能高度相关,即模块内的各个部分紧密地协同工作以完成特定任务。低耦合则意味着各个...

    《设计模式学习笔记》

    4. 高内聚:确保类内的元素紧密关联,执行相似的任务。 5. 多态:允许通过重载和重写实现不同行为。 6. 纯虚构(纯 Fabrication):创建非自然的类以降低耦合度。 7. 控制器模式:控制器类负责处理系统事件,避免将...

    ASP.NET设计模式

    《ASP.NET设计模式》内容简介:这本独特的书通过强调松散耦合、高内聚的ASPNET Web应用程序架构设计,使得人们对高质量ASP.NET应用程序结构的认识更进一步。每一章内容分别解决企业ASP.NET应用程序中的一个层,同时...

    《软件秘笈:设计模式那点事》郑阿奇(编者) -电子工业出版社

    1.3.1 高内聚、低耦合 1.3.2 面向抽象编程 1.3.3 多用组合少用继承 1.3.4 “开-闭”原则 1.4 设计模式概述 1.4.1 什么是设计模式 1.4.2 为什么需要设计模式 1.4.3 如何正确应用设计模式 1.5 设计模式的分类 ...

    java设计模式总结

    设计原则是指导设计模式的基础,包括简约性、前瞻性、一致性、统一性和可重用性、高性能、易维护、稳定性、低耦合高内聚以及模块化。遵循这些原则,可以编写出高效、可扩展且易于维护的代码。在实际开发中,合理地...

    论文研究-设计模式在标图系统中的综合应用.pdf

    按照设计模式中“高内聚、低耦合”的原则,设计出一种标图系统的整体结构,并以Prototype, Template Method, Observer, Command, Composite和Singleton六种具体模式为例,详细阐述了它们在系统功能实现过程中的应用...

Global site tag (gtag.js) - Google Analytics