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

    开闭原则(Open Close Principle)

    对扩展开放,对修改关闭。

    • 抽象约束,封装变化。

    里氏替换原则(Liskov Substitution Principle)

    任何超类出现的地方,子类一定可出现。

    • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法;
    • 子类中可以增加自己特有的方法;
    • 子类重载父类的方法时,前置条件(即方法的输入参数)要比父类的更宽松;
    • 子类实现父类的方法时,后置条件(即方法的输出/返回值)要比父类的更严格。

    依赖倒转原则(Dependencce Inversion Principle)

    针对接口编程,依赖于抽象而不具体实现。

    • 每个类尽量提供接口或/和抽象类;
    • 变量的声明类型尽量是接口或者抽象类;
    • 任何类都不应该从具体类派生;
    • 使用继承时尽量遵循里氏替换原则。

    接口隔离原则(Interface Segregation Principle)

    使用多个隔离的接口。

    • 接口尽量小,但是要有限度。一个接口只服务于一个子模块或业务逻辑;
    • 为依赖接口的类定制服务。类只提供需要的方法,屏蔽不需要的;
    • 拒绝接口固定化。不同的业务逻辑,接口的拆分标准就不同;
    • 提高内聚,减少对外交互。接口用最少的方法去完成最多的事情。

    迪米特原则(Demeter Principle)

    类与类最少知道,模块相对独立。

    • 类的划分上,创建低耦合的类;
    • 类的设计上,降低成员的访问权限;
    • 类的引用上,减少其他对象的引用次数;
    • 谨慎使用序列化(Serializable)功能。

    合成复用原则(Composite Reuse Principle)

    尽量使用合成/聚合,而不是继承。

  • 相关阅读:
    Qt Creator 安装SDK,在MSVC编译模式下使用CDB调试器
    QString与std::string的相互转换
    白话代码中的复杂度分析-大O复杂度表示法 时间,空间复杂度分析 最好,最坏,平均复杂度
    QT 如何使窗体初始最大化
    make_ext4fs
    Qt5.4中遇到找不到头文件<QApplication>等
    MariaDB 数据库的备份
    MariaDB -- 数据类型
    MariaDB基础操作
    keepalived + lvs 网站高可用集群
  • 原文地址:https://www.cnblogs.com/wesson2019-blog/p/13738547.html
Copyright © 2011-2022 走看看