![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
专注&突破
专注&突破
展开
-
Strategy(策略模式)
1、定义 定义一系列的算法,把他们一个个封装起来,并且使他们可以相互替换。使得算法可以独立与使用它的客户而改变。 2、结构图 3、协作角色: Strategy 定义所支持算法的接口。 ConcreteStrategy 具体算法 Context 用一个ConcreteStrategy对象来配置,维护一个对Strate原创 2013-08-20 00:39:58 · 635 阅读 · 0 评论 -
Proxy(代理模式)
1、定义: 为其他对象提供一种代理以控制对这个对象的访问。 2、结构: 3、协作角色 proxy (1)保存一个引用使得代理可以访问一个实体。 (2)提供一个与subject相同的接口,使得代理可以代替实体。 (3) 控制对实体的访问原创 2013-08-17 13:17:31 · 5190 阅读 · 0 评论 -
开篇
本人在学程序设计以来断断续续一共有七年了,虽说算不上什么高手,但是也能混口饭吃。这些年我觉得有三项学习很重要: 1、学习C语言后学习数据结构和算法 2、跟着深入理解linux内核学习linux内核 3、做过一些项目后学习设计模式 这写文章原创 2013-08-16 15:29:32 · 370 阅读 · 0 评论 -
设计模式基础
1、设计模式的定义 建筑大师Christopher Alexander说:“每个设计模式描述在我们周围不断发生的问题,以及该问题的核心解决方案,这样,就可以重复使用该方案而不必做重复劳动”(“Each pattern describes a problem which occurs over and over again in our environment, and the原创 2013-08-16 17:10:57 · 556 阅读 · 0 评论 -
buffer(缓冲区模式)
1、定义: 将消息封装成一个对象,发送端将其存储到一个缓冲区中,接收端从缓冲区中取消息。 2、结构图: 3、协作角色: 略 4、适用性: 1、发送端和接收端不能同步 2、要对发送对象进行优化,排序等特殊处理 5、实例: 1、需求,发送任务和接受任务不能同步, 2、实现:原创 2013-08-26 19:36:10 · 1395 阅读 · 0 评论 -
Iterator(迭代器模式)
1、定义 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。 2、结构图 3、协作角色 Interator 定义访问遍历对象内部元素的接口 ConcreteInterator 实现Interator接口,在遍历时跟踪当前位置。 Aggregate 定义创建相应迭代器原创 2013-08-25 18:57:02 · 506 阅读 · 0 评论 -
Command(命令模式)
1、定义: 将一个请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 2、结构图: 3、协作角色: Command 声明执行操作的接口。 ConcreteCommand 将一个对象绑定与一个动作,调用接受者相关的操作,以实现Execute()原创 2013-08-24 19:26:03 · 628 阅读 · 0 评论 -
adapter(适配器模式)
1、定义 将一个类的接口转换成客户所希望的另一个接口。adapter模式使得原本由于接口不兼容而不能在一起工作的类可以一起工作。 2、结构 对象适配器依赖于对象组合 3、协作角色 Target:供客户断掉用的接口 Adapter: 适配Target和Adaptee Adaptee:已经存在的接口原创 2013-08-23 20:03:18 · 531 阅读 · 0 评论 -
Decorator(装饰模式)
1、定义: 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。 2、结构图: 3、协作角色 Component 定义一个对象的接口,可以给这些对象动态的增加职责。 ConcreteComponent 定义一个对象,可以给这些对象添加一些职责。 Decorator 维持一个Component对象的指针,原创 2013-08-21 23:28:49 · 573 阅读 · 0 评论 -
State(状态模式)
1、定义: 允许一个对象在其状态改变时改变他的行为。 2、模式结构 3、协作角色 Context 定义客户感兴趣的接口和定义当前状态 State: 定义一个接口以封装与Context的一个特定状态相关的行为 ConcreteState* 实现一个与Context的一个状态相关的行为 4、适用性:原创 2013-08-18 15:44:10 · 474 阅读 · 0 评论