• 设计模式原则


    内聚与耦合

    耦合:

    也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

    模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

    若一个模块内各元素(语句之间、程序段之间)联系的越紧密,则它的内聚性就越高。

    内聚

    故名思议,表示内部间聚集、关联的程度,那么高内聚就是指要高度的聚集和关联。高内聚是指类与类之间的关系而定,高,意思是他们之间的关系要简单,
    明了,不要有很强的关系,不然,运行起来就会出问题。一个类的运行影响到其他的类。由于高内聚具备可靠性,可重用性,可读性等优点,模块设计推荐采用高内聚。
    内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。

    一、单一职责原则

    类的职责要单一,控制类的粒度大小,不能将太多的职责放在一个类中。单一职责原则是实现高内聚、低耦合的指导方针,设计人员需要发现类的不同职责并将其分离。

    优点:

     1.可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;

     2. 提高类的可读性,提高系统的可维护性;

     3.变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。

    二、开闭原则

    一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。为了满足开闭原则,需要对系统进行抽象化设计,

    抽象化是开闭原则的关键。为系统定义一个相对稳定的抽象层,而将不同的实现行为移至具体的实现层中完成。如果需要修改系统的行为,无须对抽象层进行任何改动,

    只需要增加新的具体类来实现新的业务功能即可,实现在不修改已有代码的基础上扩展系统的功能,达到开闭原则的要求。

    开闭原则是最基础的设计原则,下面的五个设计原则都是开闭原则的具体形态.

    优点

        1.提高复用性,抽象类粒度小,可复用性高,

        2.提高维护性,不需要关注抽象类维护,只负责实例扩展。

        3.面向对象开发的要求,设计之初考虑尽可能多的变化,留下接口,等待“可能”转变为实现

    三、里氏代换原则

    任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,

    而派生类也能够在基类的基础上增加新的行为。在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。

    四、依赖倒转原则

    针对接口编程,依赖于抽象而不依赖于具体。高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。

    代码要依赖于抽象的类,而不要依赖于具体的类;要针对接口或抽象类编程,而不是针对具体类编程

    五、接口隔离原则

    使用多个隔离的接口,比使用单个接口要好。降低类之间的耦合度。不应该依赖那些它不需要的接口。用多个专门的接口,而不使用单一的总接口。

    每一个接口应该承担一种相对独立的角色,不多不少,不干不该干的事,该干的事都要干。

    六、合成复用原则

    尽量使用合成/聚合的方式,尽量使用对象组合,而不是使用继承。一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,

    使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用其已有功能的目的

    七、迪米特法原则(最少知道原则

    一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。当一个模块修改时,就会尽量少的影响其他的模块,扩展会相对容易。

  • 相关阅读:
    Array对象
    属性描述对象
    Object对象
    console对象与控制台
    编程风格
    错误处理机制
    13、百钱买百鸡之数学优化
    12、c程序中编程,统计一行中数字字符的个数。
    10、输入某年某月某日,判断这一天是这一年的第几天?
    9、c语言输入一个整数怎么分别输出它的每位上的数字
  • 原文地址:https://www.cnblogs.com/socks/p/13437242.html
Copyright © 2020-2023  润新知