zoukankan      html  css  js  c++  java
  • 软件设计原则

    一、开闭原则(Open Closed Principle,OCP):当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。

    二、里氏替换原则(Liskov Substitution Principle LSP):子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。

    三、依赖倒置原则(Dependency Inverse Principle DIP):高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象,其核心思想要面向接口编程,不要面向实现编程。

    (1)每个类尽量提供接口或抽象类,或者两者都具备。

    (2)变量的声明类型尽量是接口或者是抽象类。

    (3)任何类都不应该从具体类派生。

    (4)使用继承时尽量遵循里氏替换原则。

    四、单一职责原则(Single Responsibility Principle,SRP):发现类的不同职责并将其分离,再封装到不同的类或模块中。

    五、接口隔离原则(Interface Segregation Principle,ISP):尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法。

    六、迪米特法则(Law of Demeter,LoD):如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。

    (1)在类的划分上,应该创建弱耦合的类。类与类之间的耦合越弱,就越有利于实现可复用的目标。。

    (2)在类的结构设计上,尽量降低类成员的访问权限。

    (3)在类的设计上,优先考虑将一个类设置成不变类。

    (4)在对其他类的引用上,将引用其他对象的次数降到最低。

    (5)不暴露类的属性成员,而应该提供相应的访问器(set 和 get 方法)。

    (6)谨慎使用序列化(Serializable)功能。

    七、合成复用原则(Composite Reuse Principle,CRP):如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。

    这 7 种设计原则是软件设计模式必须尽量遵循的原则,各种原则要求的侧重点不同。其中,开闭原则是总纲,它告诉我们要对扩展开放,对修改关闭;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;单一职责原则告诉我们实现类要职责单一;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合度;合成复用原则告诉我们要优先使用组合或者聚合关系复用,少用继承关系复用。

  • 相关阅读:
    flex布局
    input框不能输入问题
    JS的innerHTML完成注册表
    CSS的z-index属性和box-shadow属性
    JS个人笔记
    css照片墙
    透明度设置
    a标签的name属性
    iframe标签
    title属性
  • 原文地址:https://www.cnblogs.com/skyblue123/p/13192532.html
Copyright © 2011-2022 走看看