zoukankan      html  css  js  c++  java
  • 设计模式六大原则

    1、单一职责原则

    就一个类而言,应该只有一个引起它变化的原因。意思是,一个类应该实现单一的职责,如果功能太多就应该将类拆分。

    2、开放-封闭原则(Open Close Principle)

    软件实体(比如类、模块、函数等),对于扩展是开放的,对于更改的封闭的。意思是,如果软件要进行拓展时,不能去修改原代码,而应该去拓展原代码。这样能保证程序有较好的拓展性,易于维护和更新升级。为了实现这个功能,需要遵循“依赖倒转原则”。

    3、依赖倒转原则(Dependence Inversion Principle)

    即要面向接口编程,而不应该面向实现类编程。

    4、里氏替换原则(Liskov Substitution Principle)

    如果程序中使用的是父类的话,那一定能替换成子类,并且察觉不出父类和子类对象的区别。

    换个说法,即类B继承类A时,除添加新的方法完成新增功能外,尽量不要重写父类A的方法,也尽量不要重载父类A的方法。即子类可以拓展父类的功能,但尽量不要修改父类的功能。

    5、迪米特法则(最少知识原则)(Demeter Principle)

    一个类对自己依赖的类的内部结构了解的越少越好,即减小类之间的耦合性。所以我们在设计类的时候,尽量降低成员变量的访问权限(private类型),所有逻辑都应该通过方法对外暴露。这样当这个类发生修改时,可以最小限度的影响其他类。

    迪米特法则还有一个更简单的定义:只与直接的朋友通信。首先来解释一下什么是直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。耦合的方式很多,依赖、关联、组合、聚合等。其中,我们称出现成员变量、方法参数、方法返回值中的类为直接的朋友,而出现在局部变量中的类则不是直接的朋友。也就是说,陌生的类最好不要作为局部变量的形式出现在类的内部

    6、合成复用原则(Composite Reuse Principle)

    原则是尽量首先使用合成/聚合的方式,而不是使用继承。

  • 相关阅读:
    「WC2021」表达式求值
    [补]「WC2021」括号路径
    「CEOI2020」星际迷航
    「CEOI2018」斐波那契表示法
    CF913F
    CF1017G The Tree
    NOI2020 超现实树
    LOJ 6714 Stupid Product
    LOJ 575. 不等关系
    CF1267G
  • 原文地址:https://www.cnblogs.com/moongeek/p/12543679.html
Copyright © 2011-2022 走看看