美文网首页
软件开发几大原则

软件开发几大原则

作者: 视频怪物 | 来源:发表于2019-12-24 15:05 被阅读0次

    开闭原则

    一个软件如 类, 模块和函数应该对扩展开放, 对修改关闭

    用抽象构建框架, 用实现扩展实现

    优点: 提供软件系统的可复用性及可维护性.

    依赖倒置原则

    高层模块不应该依赖底层模块, 二者都应该依赖其抽象

    抽象不应该依赖细节, 细节应该依赖抽象.

    针对接口编程, 不要针对实现编程.

    优点: 可以减少类间的耦合性, 提高系统稳定性, 提高代码可读性和可维护性, 可减低修改程序所造成的风险

    单一职责原则

    不要存在多于一个导致类变更的原因

    一个类/ 接口/ 方法只负责一项职责

    优点: 降低类的复杂度, 提高类的可读性, 提高系统的可维护性, 降低变更引起的风险

    单一职责原则

    接口隔离原则

    用多个专门的接口, 而不使用单一的总接口, 客户端不应该依赖它不需要的接口

    1. 一个类对另一个类的依赖应该建立在最小的接口上

    2. 建立单一接口, 不要建立庞大臃肿的接口

    3. 尽量细化接口, 接口中的方法尽量少

    4. 注意适度原则, 一定要适度

    5. 提高内聚, 尽量减少对外的交互

    优点: 符合我们常说的高内聚低耦合的设计思想, 从而使得类具有很好的可读性, 可扩展性和可维护性.

    接口隔离原则

    迪米特原则(最少知道原则)

    一个对象应该对其他对象保持最少的了解, 又叫最少知道原则

    尽量降低类和类之间的耦合

    强调只和朋友交流, 不和陌生人说话.

    朋友: 出现在成员变量, 方法的输入/输出参数中的类称为成员朋友类, 而出现在方法体内部的类不属于朋友类.

    优点: 降低类之间的耦合

    迪米特原则(最少知道原则)

    合成/复用原则

    尽量使用组合,尽量不要使用继承

    组合

    由于组合可以将已有的对象纳入到新对象中,使之成为新对象的一部分,因此新对象可以调用已有对象的功能

    优点
    1. 新对象存取成分对象的唯一方法是通过成分对象的接口。
    2. 这种复用是黑箱复用,因为成分对象的内部细节是新对象所看不见的。
    3. 这种复用支持包装。
    4. 这种复用所需要的依赖较少。
    5. 每一个新的类可以将焦点集中到一个任务上。
    6. 这种复用可以在运行时间动态进行,新对象可以动态的引用与成分对象类型相同的对象。
    缺点

    就是用组合复用建造的系统会有较多的对象需要管理。

    继承

    组合几乎可以用到任何环境中去,但是继承只能用到一些环境中。

    继承复用通过扩展一个已有对象的实现来得到新的功能,基类明显的捕获共同的属性和方法,而子类通过增加新的属性和方法来扩展超类的实现。

    优点:
    1. 新的实现比较容易,因为基类的大部分功能都可以通过继承自动的进入子类。
    2. 修改或扩展继承而来的实现较为容易。
    缺点:
    1. 继承复用破坏了包装,因为继承超类的的实现细节暴露给子类。由于超类的内部细节常常对子类是透明的,因此这种复用是透明的复用,又称“白箱”复用。
    2. 如果超类的实现发生改变,那么子类的实现也不得不发生改变。因此,当一个基类发生改变时,这种改变就会像水中投入石子引起的水波一样,将变化一圈又一圈的传导到一级又一级的子类,使设计师不得不相应地改变这些子类,以适应超类的变化。
    3. 从超类继承而来的实现是静态的,不可能在运行时间内发生改变,因此没有足够的灵活性。

    相关文章

      网友评论

          本文标题:软件开发几大原则

          本文链接:https://www.haomeiwen.com/subject/kvcfoctx.html