设计模式
周成风
Windows原生开发C/C++,QT,C#,熟悉Windows CEF内核二次开发
App跨端Flutter
鸿蒙原生ArkTS、ArkUI
展开
-
Observer模式
前言:Observer模式是对象行为型模式的一种,定义了对象间的一种一对多的依赖关系。当一个对象状态发生改变时,所有依赖与它的对象都得到通知并被自动更新。本文将讨论以下内容,详细文档请参照GOF出版的《设置模式》。1、 动机2、 适用性3、 结构4、 代码实现一、 动机许多图形用户界面工具箱将用户应用的界面表示与底下的应用数据分离。定义应用数据的类和负责界面表原创 2009-07-31 13:43:00 · 1477 阅读 · 0 评论 -
观察者模式使用心得
观察者模式、Observer、Subject原创 2010-07-16 10:32:00 · 1167 阅读 · 0 评论 -
Chain of Responsibility
#include "stdafx.h"#include #include #include using namespace std;using namespace boost;/*** @brief Chain Of Responsibility 职责链模式,属于GOF 23种设置模式中的行为模式的一种* 意图: 使多个对象都有机会处理请求,从而避免原创 2009-08-24 14:30:00 · 680 阅读 · 0 评论 -
Adapter
#include "stdafx.h"#include #include using namespace std;using namespace boost;/*** @brief 将一个类的接口转换成客户希望的另外一个接口,解决两个已有接口之间不匹配的问题。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 @Not原创 2009-08-17 18:20:00 · 592 阅读 · 0 评论 -
Singleton模式
Singleton(单件)…… ……对象创建型模式1、 意图保证一个类仅有一个实例,并提供一个访问他的全局访问点。2、 动机很多管理类需要只有一个实例,并提供唯一的访问点,正好可以使用Singleton模式。3、 实现Singleton模式的方法有很多种,这里提供一个自认为可以使用的Class Singletioin{Public:原创 2009-06-12 10:52:00 · 1100 阅读 · 0 评论 -
Bridge
#include "stdafx.h"#include #include using namespace std;using namespace boost;/*** @brief Bridge模式对抽象接口与它的(可能是多个)实现部分进行桥接 在设计之初就该明白,一个抽象将有多少个实现部分,并且抽象和实现两者是独立演化的。*//** @brie原创 2009-08-18 10:07:00 · 566 阅读 · 0 评论 -
开发流程,将根据自己认识慢慢完善
一、需求非常重要,把需求一定要书面定下来。 主要以文字的形式(手写或是文档)记录下用户需求,尽量详细明白。该部分工作一般由产品部完成,研发经理拿到的一般是个成品。二、仔细分析需求,把需求分解成不同模块、不同组件来进行实现。称为架构或顶层设计,此步骤非常重要,若设计失败,则可能导致整个项目失败。 a) 根据需求,将整个需求分成不同组件用来实现。比如分成多个D原创 2009-06-08 23:16:00 · 1291 阅读 · 1 评论 -
MM与GOF的23个设计模式
MM与设计模式这篇文章可谓是"寓教于乐"的典范,以轻松的语言比喻讲述了GOF的23个模式在日常生活中的原型,虽然没有具体讲述如何实现,但是对于理解各个设计模式的运用场合还是很有帮助的。相信对设计模式已经有了一定了解的人看了这篇文章都会会心一笑:)。一、 创建型模式1、FACTORY:追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦转载 2009-08-12 18:49:00 · 941 阅读 · 0 评论 -
Composite
Composite.h #pragma once#include using namespace std;/** @brief 组合中的抽象基类 */class Component{public: Component(void); virtual ~Component(void); /** * @brief 纯虚函数,只提供接口 */转载 2009-08-13 15:47:00 · 587 阅读 · 0 评论 -
Iterator模式
Iterator.h #pragma once#include typedef int DATA;class Iterater;// 容器的抽象基类class Aggregate{public: virtual ~Aggregate(){} virtual Iterater* CreateIterater(Aggregate *pAggregat转载 2009-08-12 19:29:00 · 717 阅读 · 0 评论 -
Prototype
#include "stdafx.h"#include #include using namespace std;/*** @brief Prototype模式用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 优点:复制自身。客户不知道需要对象的实际类型,只需知道它的抽象基类即可。 缺点:必须先有一个对象实例(即原型)才能clo原创 2009-08-10 16:49:00 · 635 阅读 · 0 评论 -
Factory Method
#include "stdafx.h"#include #include #include #include using namespace std;/*** @brief 数据库有SQL数据库与甲骨文数据库* 现实当中有时候需要变换不同的数据库访问、以下采用Factory Method模式做这个变换效果* @warning 一个Factory原创 2009-08-10 16:47:00 · 677 阅读 · 0 评论 -
Builder
#include "stdafx.h"#include #include #include #include #include #include #include using namespace std;using namespace boost;/*** @brief Builder模式将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不原创 2009-08-10 16:44:00 · 561 阅读 · 0 评论 -
Abstract Factory
#include "stdafx.h"#include #include using namespace std; /*** @brief 衣服有纽扣也有衣领,纽扣、衣领这一般需要交给加工厂单独来制作 假设在中国加工厂制作称为中国的衣服(中国制造),在美国加工厂制作称为美国的衣服(美国制造) 以下采用abstractFactory模式来演示原创 2009-08-10 16:36:00 · 586 阅读 · 0 评论