12月读书笔记1

《设计模式:可重用面向对象软件的元素》(通常称为“设计模式”)是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides撰写的一本经典计算机科学书籍。这四位作者通常被称为"四人帮"(Gang of Four, GoF)。这本书首次系统地提出了设计模式的概念,并对23种设计模式做了详细介绍。这些模式旨在解决面向对象软件设计中的常见问题。

以下是可能会在阅读该书后记下的一些关键点和笔记:

设计模式分类

设计模式通常分为三大类:

  1. 创建型模式:涉及对象创建机制,目的是创建对象时增加灵活性和可复用性。例如单例(Singleton)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)、建造者(Builder)、原型(Prototype)。

  2. 结构型模式:处理对象组合,通常用于实现更简洁的对象结构来提高软件的灵活性。例如适配器(Adapter)、桥接(Bridge)、组合(Composite)、装饰者(Decorator)、外观(Facade)、享元(Flyweight)、代理(Proxy)。

  3. 行为型模式:用于在对象之间的职责分配。这些模式涉及算法和对象间职责的分配,不仅减少了对象间的耦合,而且提高了灵活性。例如观察者(Observer)、模板方法(Template Method)、访问者(Visitor)、策略(Strategy)、状态(State)、命令(Command)、解释器(Interpreter)、迭代器(Iterator)、中介者(Mediator)、备忘录(Memento)、责任链(Chain of Responsibility)。

设计原则

书中还介绍了一些设计原则,用于指导如何更好地使用设计模式,比如:

  • 封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
  • 对接口编程而不是对实现编程:依赖抽象,不要依赖具体类。
  • 多用组合,少用继承:使用组合可以使设计更加灵活。
  • 单一职责原则:一个类应该只有一个引起变化的原因。
  • 开放-关闭原则:软件实体应当对扩展开放,对修改关闭。

应用中的注意事项

  • 模式不是万能的:模式是用来解决特定问题的,不应该在不适当的场合强行应用。
  • 重视模式的意图和问题:理解模式解决的问题和模式的用意比学习具体的实现更为重要。
  • 重构与模式:在软件开发过程中,经常会通过重构来引入设计模式。

结论

设计模式是软件工程中的一种重要思想,它提高了代码的可复用性、可维护性和通信效率。阅读《设计模式》并不仅仅是为了学习这些模式本身,更是为了学习如何解决软件设计中的常见问题,以及如何编写灵活、可维护的代码。通过应用这些模式,可以使软件设计更加清晰,减少未来可能出现的问题。

posted @ 2023-12-02 20:59  周+⑦  阅读(61)  评论(0)    收藏  举报