Design Pattern 笔记(第一章)

来源:互联网 发布:ck商标 知乎 编辑:程序博客网 时间:2024/04/29 10:54

面向对象的主要目的:

减少重复代码和重复设计

设计可复用的面向对象软件

  1. 找到相关的对象,以适当的粒度将它们归类
  2. 再定义类的接口和继承层次
  3. 建立对象之间的基本关系

什么是设计模式

模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动

设计模式的基本要素:
1. 模式名称:一个助记名,用来描述模式的问题,解决方案和效果。模式名可以帮助我们思考,便于我们与他人交流设计思想及设计结果。
2. 问题:描述了应该在何时使用模式。
3. 解决方案:描述了设计的组成成分。
4. 效果:描述了模式应用的效果及使用模式应权衡的问题

MVC模式

类的模型/视图/控制器(Model/View/Controller),Model是应用对象,View是在屏幕上的表示,Controller定义用户界面对用户输入的相应方式。
使用MVC,把视图设计和模型设计分离,跟一般的:可以将对象分离,使得一个对象的改变能够影响另一些对象,而这个对象并不需要知道那些被影响的对象的细节。这个更一般的设计叫Observer模式

Android中对事件的处理就是用的观察者模式

设计模式分类



我们根据两条准则对模式进行分类:

第一是目的准则,即模式是用来完成什么工作的。模式依据其目的可分为创建型( Creational)、结构型( Structural)、或行为型( Behavioral )三种。创建型模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对类或对象怎样交互和怎样分配职责进行描述。

第二是范围准则,指定模式主要是用于类还是用于对象。类模式处理类和子类之间的关系,这些关系通过继承建立,是静态的,在编译时刻便确定下来了。对 象模式处理对象间的关系,这些关系在运行时刻是可以变化的,更具动态性。从某种意义上来说,几乎所有模式都使用继承机制,所以“类模式”只指那些集中于处 理类间关系的模式,而大部分模式都属于对象模式的范畴。

创建型类模式将对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到另一个对象中。结构型类模式使用继承机制来组合类,而结构型对象模式则 描述了对象的组装方式。行为型类模式使用继承描述算法和控制流,而行为型对象模式则描述一组对象怎样协作完成单个对象所无法完成的任务。

还有其他组织模式的方式。有些模式经常会被绑在一起使用,例如, Composite(组合模式)常和Iterator(迭代器模式)或Visitor(访问者模式)一起使用;有些模式是可替代的,例如, Prototype(原型模式)常用来替代Abstract Factory(抽象工厂模式);有些模式尽管使用意图不同,但产生的设计结果是很相似的,例如, Composite(组合模式)和Decorator(装饰模式)的结构图是相似的。

还有一种方式是根据模式的“相关模式”部分所描述的它们怎样互相引用来组织设计模式。下图给出了模式关系的图形说明。


设计模式怎么解决设计问题

1. 寻找合适对象
面向对象程序设计就是创建对象,和给对象发消息
2. 决定对象粒度

3. 指定对象接口
对象接口描述了该对象能接收的全部请求的集合,任何匹配对象接口中型构的请求都可以发送给该对象。
通过多态实现对变和不变设计的分离,增加程序的扩展性和可复用性
4. 描述对象的实现

0 0
原创粉丝点击