关于设计模式
整篇文章在开头提出以下三个问题:
- 问题一:你真的了解面向对象吗?
- 问题二:你准确的知道什么是模式吗?
- 问题三:你知道如何使用设计模式吗?
这里也放在最前面用于思考。
什么是设计模式?
模式是针对特定场景下的特定问题的可复用、可表达的解决方案。
面向模式设计是从分析到实现的设计模式,基于模式的分析使你成为一个更有力、更高效的分析者,因为它们让你更抽象的处理你的模型;其帮助人们学习面向对象的原则,帮助解释“为什么我们要这样处理这些对象” 使用模式的观念:如何使用模式来理解问题(概念)领域,而不仅仅在理解问题领域后使用模式来完成一个设计。
程序设计的错误思路:先创建问题领域中的类,然后将这些类缝合起来组成最终的系统。
为什么要使用设计模式?
研究使用设计模式和面对对象编程的最本质原因是:需求中存在变化的部分。
根本目的是:更好的复用我们的代码解决实际需求中的问题,OO达到可复用、可扩展、易维护的目的。
先学习两个概念,所有程序设计中都要求的基本原则之一:高内聚,低耦合。
- 内聚度:程序内操作之间的联系紧密的程度,描述一个子程序内部成分之间相互联系的强度
- 耦合度:程序之间的联系紧密的程度,描述一个程序与其他程序之间的相互联系的强度
使用功能分解的方式设计程序,变化的需求分让我们的程序和维护成本大大增加(因为一个函数或数据结构的变化会影响其他的函数和数据,于是受影响的部分也得修改,这种滚雪球似的使bug增加)
面向对象设计的要点?
好的调度或控制程序关注能做什么,不关心怎样去做,将职责分配下去 对象是一个拥有行为动作和自我状态的东西 对象的好处:可以定义自己负责的东西。 好的设计原则:对象对自己负责,并且这种责任应该被明确的定义出来 观察对象的视角:
- 概念视角:抽象建模
- 规格视角:有哪些能力
- 实现视角:怎样实现
封装带来的优势:
- 让对象为自己的行为负更多的责任,控制程序负担的责任就越少
- 封装让一个对象内部状态和行为的变化对对象调用者透明
- 封装帮助我们避免因需求变化带来的bug的影响
模式之间的关系?
一般来书,要构建一个系统,你需要将很多模式结合起来使用。不同的设计者可能会使用不同的模式来解决同一个问题。通常:
- 很多模式通常可以很好的相互结合
- 一个模式可能会依赖与另一个
- 一些模式是类似的,都是可选的
- 模式是易于发现和描述的
- 模式不是方法或框架
- 模式为你提供解决问题的高效方案

浙公网安备 33010602011771号