zoukankan      html  css  js  c++  java
  • 读书笔记----软件设计原则、设计模式

    读书笔记----软件设计原则、设计模式

    这个作业属于哪个课程 班级链接
    这个作业要求在哪里 作业要求链接
    这个作业的目标 学习软件的设计原则和设计模式并加以运用

    参考书籍

    《设计模式 - 可复用面向对象软件的基础》

    设计原则

    分类

    • 开闭原则:

      • 软件实体应该对扩展开放,对修改关闭。
      • 开闭原则是设计原则的核心原则,其他的设计原则都是开闭原则表现和补充。实现开闭原则的方法就是抽象。
    • 单一职责原则:

      • 一个类应该只承担一种责任。
    • 里氏替换原则:

      • 所有引用基类的地方必须能透明地使用其子类的对象。
    • 依赖倒置原则:

      • 面向抽象编程,不要面向具体编程。
    • 接口隔离原则:

      • 使用专门的接口,而不是大而全统一的接口,不要强迫客户端程序依赖不需要的方法。
    • 聚合/组合复用原则:

      • 如果可以,应该使用组合而不是继承来达到代码复用的目的。
    • 迪米特法则:

      • 软件实体之间应该做到最少的交互。不要和陌生人说话。

    要求:

    • 面向抽象(抽象类、接口)编程,而不是面向实现编程。

    • 接口和类的功能要尽可能的单一,避免大而全的类和接口。

    • 优先使用组合,而不是继承。

    • 子类的所有方法必须在父类中声明,或子类必须实现父类中声明的所有方法。

    • 子类应该尽可能的与父类保持一致,不要重写父类原有逻辑。

    • 如果类之间没必要直接交互,可以通过“中介”,而不是直接交互,降低耦合性。

    • 实现和细节可以通过DI的方式,最大程度减少“硬编码”。

    • 如果没有什么明显弊端,类应该被设计成不变的。

    • 降低其他类对自身的访问权限,不要暴露内部属性成员,如果需要提供相应的访问器(属性)。

    设计模式

    分类

    • 创建型模式是用来创建对象的模式,抽象了实例的创建过程,封装了创建逻辑。

      • 将系统所使用的具体类的信息封装起来。
      • 隐藏了类的实例是如何被创建和组织的。
    • 结构型模式讨论的是类和对象的结构,继承和组合结构。

      • 采用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象实现新的功能(对象结构型模式)。
      • 结构中的各个不同角色组织在一起以提供更强大的、逻辑清晰的功能。
      • 结构性模式的类层次结构的组织上有很大的相似性,但是逻辑的侧重功能点是不同的。
    • 行为型设计模式关注的是对象的行为,用来解决对象之间的联系/通信问题。

      • 也就是对象之间针对于不同的问题场景,如何进行合理交互。

    细化

    • 创建型

      • 工厂模式(Factory Pattern)

      • 抽象工厂模式(Abstract Factory Pattern)

      • 单例模式(Singleton Pattern)

      • 建造者模式(Builder Pattern)

      • 原型模式(Prototype Pattern)

    • 结构型

      • 适配器模式(Adapter Pattern)

      • 桥接模式(Bridge Pattern)

      • 组合模式(Composite Pattern)

      • 装饰器模式(Decorator Pattern)

      • 外观模式(Facade Pattern)

      • 享元模式(Flyweight Pattern)

      • 代理模式(Proxy Pattern)

    • 行为型

      • 责任链模式(Chain of Responsibility Pattern)

      • 命令模式(Command Pattern)

      • 解释器模式(Interpreter Pattern)

      • 迭代器模式(Iterator Pattern)

      • 中介者模式(Mediator Pattern)

      • 备忘录模式(Memento Pattern)

      • 观察者模式(Observer Pattern)

      • 状态模式(State Pattern)

      • 策略模式(Strategy Pattern)

      • 模板模式(Template Pattern)

      • 访问者模式(Visitor Pattern)

    心得体会

    设计模式的根本是设计原则,而设计原则又是为了达到实现一个“优秀”软件的行为准则。
    在你还不能灵活的运用设计原则时,设计模式则是你的垫脚石,让你在具体的问题面前能够写出更好地代码。

    编辑界面截图

  • 相关阅读:
    一个项目多个App项目搭建
    mac 配置sencha touch环境
    mac 配置pylucene
    django博客开发
    xampp添加 django支持
    mac安装apache的mod_wsgi模块
    修改xampp默认sql密码
    xampp 安装 mysql-python
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    MySQL问题解决:-bash:mysql:command not found
  • 原文地址:https://www.cnblogs.com/lizehui/p/14552804.html
Copyright © 2011-2022 走看看