软件设计模式
文章平均质量分 64
路人暴脾气
探索 - 专注 - 坚持
展开
-
设计模式之对象创建型 — builder 生成器模式
本系列博客示例代码均为C++代码,个人之言,请持怀疑态度参考。意图 将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示个人理解 生成器模式通俗的说就是构造一个对象可以分为2步,第一步是构建,第二部是表示(生成器)。构建部分是可以重用的,生成器部分则需要写不同的算法。构建部分通过与生成器的抽象接口交互,实际上并不需要太关心隐藏在接口后边的复杂的算法。实例说明 假设原创 2017-07-15 14:07:14 · 591 阅读 · 0 评论 -
设计模式之对象创建型 — abstract_factory 抽象工厂模式
本系列博客示例代码均为C++代码 实例说明 抽象工厂模式可以用一个很好的栗子来说明,比如在写一个贪吃蛇游戏, 这款游戏有很多中游戏模式,比如有经典模式,挑战模式。 游戏中可能有 砖块,门,墙等这些元素。当时每个游戏模式中这些元素的意义不同,比如在经典模式中,蛇不可以穿墙;而在挑战模式中蛇可以穿墙。 游戏的结构 适用性(什么情况适合这种模式) 一个系统要原创 2017-07-14 20:02:40 · 661 阅读 · 0 评论 -
设计模式之对象创建型 — prototype 原型模式
本系列博客示例代码均为C++代码,个人之言,请持怀疑态度参考。如有错误,欢迎留言指正。什么是原型模式 创建一个应用需要由很多组件构成,原型模式旨在通过给工厂传递原型实例,让后工厂通过拷贝构造这些原型来组件应用。 举个例子:在abstract模式中有贪吃蛇游戏的例子。他每实现一种模式,都需要写一个snakeFactory的子类。如果用原型模式的话则不需要创建辣么多子类,通过传递不同的原型就可原创 2017-07-22 15:20:23 · 633 阅读 · 0 评论 -
设计模式之对象创建型 — Factory Method 工厂方法模式
模式说明(总结这个模式是什么) factory method 模式是一种用于创建对象的接口技术。再具体的说就是给一个类写一个创建某个类的成员函数,这个类是‘工厂’,这个函数就是‘工厂方法’。不过这个类一般是抽象类。一般被创建的类(product)也是抽象的,会有多个版本的子类。工厂方法具体要创建那个product,需要也需要在子类中实现。结构 和abstract factory 的区别原创 2017-07-19 16:56:56 · 577 阅读 · 0 评论 -
设计模式之类对象结构型 — ADAPTER (适配器)模式
概述 适配器模式可以将一个类的接口转换成客户希望的另一个类的接口效果 类适配器 一个具体的Adapter(适配器)类对Adaptee(被适配者)和Target(目标)进行匹配 Adapter可以重定义Adaptee的部分行为 不需要额外的指针以间接得到adaptee 对象适配器 允许Adapter与Adaptee及其子类一起工作。 重定原创 2017-08-01 13:03:37 · 330 阅读 · 0 评论 -
设计模式之对象行为型模式 — CHAIN OF RESPONSIBILITY (职责链)模式
意图 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。示例代码//test.h 文件 #pragma once#include <iostream>using namespace std;typedef int Topic;const Topic NO_HELP_TOPIC = -1;clas原创 2017-08-09 21:17:32 · 410 阅读 · 0 评论 -
设计模式之类对象结构型 — BRIDGE (桥接)模式
意图 将抽象部分与他的实现部分分离,使他们都可以独立的变化实现参考我的这篇文章(点这里),之前已经总结过了,就不重复了。 注意:之前仅仅是对代码依赖性的考虑,这次是在之前的基础上增加了控制不同实现的效果代码示例 注意:这是完整的示例代码 vs2013编译通过 //windows.h 文件#pragma once#include <iostream>using namespa原创 2017-08-02 19:16:38 · 423 阅读 · 0 评论 -
设计模式之对象行为型模式 — COMMAND (命令)模式
意图 将一个请求封装成一个对象 ,从而使你可以用不同的请求对客户进行参数化。对请求进行排队或者记录请求日志,以及支持可撤销的操作。对象交互图Command 执行操作的接口client 创建具体的命令对象以及接受者Invoker 要求该命令执行的这个请求Receiver 接受者,任何类都可以作为接受者代码示例//test.h文件#include <iostream>#includ原创 2017-08-10 12:37:18 · 464 阅读 · 0 评论 -
设计模式之类对象结构型 — COMPOSITE(组合)模式
目的 将对象组合成树形结构,以表示“部分-整体”的层次结构结构示例代码//test.h #ifndef _TEST_H_#define _TEST_H_#include <list>#include <iostream>using namespace std;class Component{public: const char * name(){ return m_name原创 2017-08-04 14:40:11 · 697 阅读 · 0 评论