当前位置: 首页>后端>正文

设计模式(面向对象模式)

1 设计模式:模式名称:问题,解决方案,效果。问题:设计问题和问题的前因后果,怎么用对象表示算法。解决方案:设计的组成成分,互相联系和各自职责。

效果:模式应用的效果,使用模式的应权衡的问题。

基于:面向对象设计,比如 cpp,smalltalk。而不是 过程语言:c,pascal。

MVC:1. 视图与模型分离,视图可以嵌套,比如组合视图composite类来支持嵌套视图,复用于调试器。

view使用controller子类实例来实现一个特定的响应策略。

不同响应策略只要不用种类的controller 实例 替换 即可。

view, controller 是策略模式的一个例子,一个策略是一个表述算法的对象。

描述设计模式:

1. 模式名和分类,2. 意图,做啥,基本原理 3. 动机,如何使用模式中的类,对象解决该问题的特定情景。

适用性:什么情况使用该设计模式。参与者:类,对象,职责。 协作:参与者怎么协作 实现:提示,技术要点。

设计准则: 类还是对象, 类模式:类与类的关系,继承方式,静态。对象模式:对象与对象的关系,可以变化,动态。

创建类类模式:对象的部分创建工作延迟到子类,创建类对象模式:延迟到另一个对象中

结构类类模式:继承机制组合类,对象模式:对象的组装方式,

行为类模式:继承描述 算法和控制流, 对象:一组对象协作。

设计模式:1. 选择合适的对象:考虑 封装,粒度,依赖关系,灵活性,性能,演化,复用

问题描述:名词,动词,创建对应的类和操作,系统协调和职责,对现实世界建模。

2, 对象粒度 3, 指定对象接口:每一个操作名,作为参数的对象,返回值。作为类构。

对象操作所有的类构的集合是 对象的接口。 对象接口:所有对象能接受的全部请求的集合。

类型:接口的名字,对象可以继承接口,所以接口所有操作都可以实现。接口之间,可以相互继承,子类型和超类型。

一个对象可以有很多类型,不同对象可以共享同一个类型。

对象接口的某部分可以由某个类型刻画,或者其他·类型刻画。

对象只能通过他们的接口才能与外部交流,否则无法指定对象的任何事情,也无法请求对象做任何事情。

动态绑定:1. 发送给对象的请求和他的响应操作在运行时刻的连接。? 发送的请求直到运行时刻才收你的具体的实现的约束。

多态:1 运行时彼此替换有相同接口的对象,允许客户对象仅要求其他对象支持特定接口。 对象间彼此独立,运行时刻改变他们相互的关系。

接口的主要组成成分好接口发送的数据类型,定义接口。

对象:实例化类,需要分配空间等。

箭头+虚线:实例化。

竖线+箭头:继承。

抽象类:为子类提供定位公共接口。子类可以重定义 父类定义的操作,可以接管父类对请求的处理操作。

抽象类和抽象操作:用斜体。

1. 类继承:根据一个对象的实现定义定外一个对象的实现,代码和表示的共享。

2, 接口继承:一个对象什么时候能被用来替代另外一个对象。

cpp:接口继承 公有继承一个含虚成员函数的类;cpp:接口继承接近于公有继承纯抽象类,纯类继承 私有继承???

类继承 复用父类功能而扩展应用功能的基本机制。

从存在的类中继承所需要的多数功能,无需什么代价。

复用重要,继承拥有相同接口的对象族的能力(从抽象类来继承)

从抽象类导出的类,共享抽象类的接口。子类添加或者重定义操作,而不隐藏父类的操作。

根据抽象类中定义的接口来操作对象“1、 客户无需知道 使用对象的特定类型,只需对象有客户所期望的接口;

2. 客户无需知道他们使用的对象是用什么类来实现的,只需知道 定义接口的抽象类。

针对接口编程,而不是针对实现编程。不声明为具体类的实例对象,而遵从抽象类所定义的接口。

复用:1. 类继承:父类的内部细节对子类可见,允许你根据其他类的实现来定义一个类的实现。静态的。

对象组合:1. 获得对其他对象的引用而在运行时刻动态定义的。

对象彼此遵守彼此的接口约定,更仔细的定义接口:不破坏封装,类型一致,用一个类型来代替另一个对象。

对象组合:优先使用对象组合 有助于你保持每个类被封装,集中在单个任务上。减少类与类继承,对象多,类少;关注对象间的关系,而不是被定义在类中。

组装已有的组件,而不是用继承技术,

优先使用对象组合,而不是类继承。 对象组合,比累的继承 好的复用性。

组合方法:委托???this self。

参数话实例?????

箭头+实线:一个类对另外一个类实例的引用关系。

相识》》》关联???

设计模式(面向对象模式),第1张
设计模式(面向对象模式),第2张
设计模式(面向对象模式),第3张

https://www.xamrdz.com/backend/3hj1930034.html

相关文章: