
设计模式
alpha_2017
这个作者很懒,什么都没留下…
展开
-
设计模式---抽象工厂模式(C++实现)
/***************************************************************************抽象工厂: 工厂方法只能生产单一的产品 对工厂再次进行抽象,一个工厂可以生产多个产品; 2(A,B)个产品,2(C,D)个工厂,那么产品就会出现,C 生产的A,B D生产的A,B从而对应4中产品 1.创建工厂,工...原创 2017-03-12 21:21:15 · 261 阅读 · 0 评论 -
设计模式---责任链模式(C++实现)
/****************************************************************************************************链式概念(使用一个单链表,尾结点指向空,然后挨个遍历此结点指向的函数(这些函数都来自与抽象类中函数的重写)将则责任链上的对象统统创建出来,然后执行到哪个对象,哪个对象就去调用这个重写的函原创 2017-03-13 11:31:16 · 264 阅读 · 0 评论 -
设计模式--策略模式(C++实现)
/********************************************************************************************策略模式: 将一系列策略进行封装,客户根据需求去调用相应的策略,实现很方便,后续添加策略时,只需继承接口并实现该策略1.创建策略类,不同的策略去继承同一个接口函数2.将策略组成一个算法本 1....原创 2017-03-13 11:49:18 · 282 阅读 · 0 评论 -
设计模式---中介者模式(C++实现)
/***********************************************************************************************中介者模式: 思想:两个类之间不能直接联系,而是通过第三方之间通信,从而将两个类之间的关系解耦 将具体的两个同事之间的消息进行转发,从而使得两个同事之间避免了直接联系1.创建抽...原创 2017-03-13 12:21:02 · 306 阅读 · 0 评论 -
设计模式---观察者模式(C++)
/*************************************************************************观察者模式: 思想:自己在玩游戏,怕老板发现,自己有很担心,委托秘书来完成观察的任务,当观察到某一刻的变化时, 执行指定的任务,完成状态的切换1.创建客户和观察者2.客户将自己注册到观察者那里,当观察者得到某一消息时,挨个...原创 2017-03-13 13:04:16 · 297 阅读 · 0 评论 -
设计模式---备忘录模式(C++实现)
/**********************************************************备忘录模式:就是用一个类来保存一个类的中间状态;;;;;如果想大规模的保存和管理状态那么就要是用一个管理类--------------就好比命令模式的时候,命令太多的话,我们在把他给管理起来------------发起类中要有:设置状态的成员函数,创建包含当前状原创 2017-03-13 13:16:49 · 396 阅读 · 0 评论 -
设计模式---访问者模式(C++实现)
/*************************************************************************************************************适用于:把数据结构 和 作用于数据结构上的操作 进行解耦合;适用于数据结构比较稳定的场合访问者模式总结:访问者模式优点是增加新的操作很容易,因为增加新的操作就意原创 2017-03-13 14:03:15 · 755 阅读 · 0 评论 -
设计模式---状态模式(C++实现)
/*************************************************************************************************状态模式:大白话就是,状态的改变依赖于内部变量的改变;/****在设计的时候要特别注意,要将状态设计成闭环,就是当所有条件不满足的时候,返回初始状态并给出提示“没有此状态”*****原创 2017-03-13 14:19:16 · 640 阅读 · 0 评论 -
设计模式---解释器模式(C++实现)
/********************************************************************************************************解释器模式:解释器上下文环境类。用来存储解释器的上下文环境,比如需要解释的文法等将某一种输入,按照某种要求进行转化操作************************原创 2017-03-13 14:28:23 · 252 阅读 · 0 评论 -
设计模式--迭代器模式(C++实现)
/*************************************************************************迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该类内部表示实现原理: 在迭代器中 持有 一个集合的 引用;所以通过迭代器指针,就可以访问集合这个模式在STL中迭代器的实现原理来源于此有的迭代进行了封装含有两个成原创 2017-03-13 14:40:28 · 403 阅读 · 0 评论 -
设计模式的基本原则 + 类与类之间的关系
/*设计模式的基本原则:1)开放封闭原则(OCP, Open For Extension, Closed For Modification Principle)类的改动是通过增加代码进行的,而不是修改源代码。2)单一职责原则(SRP, Single Responsibility Principle)类的职责要单一,对外只提供一种功能,而引起类变化的原因都应该只有一个。3)依原创 2017-03-13 15:06:30 · 331 阅读 · 0 评论 -
轻松学,浅析依赖倒置(DIP)、控制反转(IOC)和依赖注入(DI)
写这篇文章的原因是这两天在编写关于 Dagger2 主题的博文时,花了大量的精力来解释依赖注入这个概念。后来想一下,这些在面向对象开发过程中与依赖相关的诸多术语和概念实际情况下非常的抽象,因此独立成文也有就一定的意义,旨在帮助初学者快速地对这些概念有一个大致的印象,然后通过一些实例来领悟它们之中的内在奥秘。什么是依赖(Dependency)?依赖是一种关系,通俗来讲就是一种需要。转载 2017-07-16 18:50:15 · 922 阅读 · 0 评论 -
设计模式---命令模式(C++实现)
/****************************************************************************************************************命令模式:说白了就是通过中间人专门去管理这个命令,将这个中间人称为管理命令类,由这个中间人完成指令的发送动作适用于:是将一个请求封装为一个对象,从而使你可原创 2017-03-13 11:16:54 · 392 阅读 · 0 评论 -
设计模式---模板模式(C++实现)
/*模板模式:有没有发现这个是建造者模式的简化版本:将此版本升级就编程了建造者模式将一组行为升级成一个模板,从而实现了创建某一类产片的模板,这样就完成了一类产品的创建(这个产品依赖很对创建过程将此创建过程进行封装)实现方法:创建一个抽象接口类定义接口;不同的子类去继承实现接口,然后在创建子类对象时,返回一个基类指针,然后使用基类指针去调用将此对象的创建过程进行封原创 2017-03-13 10:54:11 · 292 阅读 · 0 评论 -
设计模式---工厂方法模式(c++实现)
/*********************************************************工厂方法: 与简单工厂的区别,将产品的创建分别委托给单独的类,即一个工厂对应一个产片 而不是将所有产品的创建交给一个类来管理 1.首先创建工厂 2.通过此工厂来获取对应的产品(将对象的创建放到工厂中创建)**********************...原创 2017-03-12 20:52:45 · 259 阅读 · 0 评论 -
设计模式---简单工厂模式(c++实现)
/**************************************************************简单工厂: 1.产品的创建交给一个单独的类来管理 2.此类提供全局的访问接口,根据输入条件的不同来创建不同的对象使用: 1.创建工厂,根据输入的条件来创建对应的产品 2.在创建产品时,返回产品的接口指针 3.通过此指针来操作相应的...原创 2017-03-12 20:35:24 · 225 阅读 · 0 评论 -
设计模式----单例模式(c++实现)
/***********************************************************单例模式:思想:保证在程序运行时,只有一个实例化的对象1.懒汉式 1.只有在使用的时候才去实例化对象,在用不到的时候不去创建 2.首先构造函数私有化,通过静态成员函数赋予外界调用的权限 静态成员变量在类内定义,在类外初始化 3.通过静态成员指...原创 2017-03-12 20:22:33 · 268 阅读 · 0 评论 -
设计模式--建造者模式(C++实现)
/*建造者模式1.客户类直接建造房子2.工程队通过,将房子不同的建造部分进行封装,然后重写。实现解耦合3.通过创建一个设计师,在设计师的建造函数中实现(对象不同部分的创建功能(是因为传进来了指向子类的基类指针))然后建造函数通过此指针,去调用派生类的函数进行创建工作//设计师指挥工程队干活 在设计师的建造函数内部实现了,对象不同部分的创建工作,将对象的创建与实现解耦合//原创 2017-03-12 21:44:56 · 315 阅读 · 0 评论 -
设计模式----原型模式(C++实现)
#define _CRT_SECURE_NO_WARNINGS#include#includeusing namespace std;class Person{//抽象类提供接口public:virtual Person *Clone() = 0;//返回基类指针virtual void printT() = 0;};class JavaProgrammer原创 2017-03-12 22:10:47 · 250 阅读 · 0 评论 -
设计模式---代理模式(c++实现)
/************************************************代理模式: 1.定义代理接口 2.代理类和被代理类去实现相同的接口 3.在代理类中创建被代理的类,在接口中去调用被代理类的接口使用: 1.创建代理对象,在代理对象中实现了调用被代理类的接口 从而看起来好像是调用的同一个接口,但是实际执行的是被代理类的函数...原创 2017-03-12 22:48:54 · 196 阅读 · 0 评论 -
设计模式----装饰模式(C++实现)
/*********************************************************************************************************************装饰模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。装饰模式就是把要(添加的附加功能)分别放在单独的类中,并让这个原创 2017-03-12 23:04:39 · 309 阅读 · 0 评论 -
设计模式---适配器模式(C++实现)
/*********************************************************************适配器模式: 将18V的接口,通过适配器实际调用的为220V函数 1.创建两个不同的接口18V和220V接口 2.新建适配器类(继承18V的类),并在其中定义220V接口的指针,通过对象注入将220V的对象注入到适配器中 3.并将其1...原创 2017-03-12 23:16:26 · 206 阅读 · 0 评论 -
设计模式---组合模式(C++实现)
/*************************************************************************组合模式:是把单个对象和组合对象放在一起使用,把操作单个对象,和操作整个对象搞的没有太大差别在遍历的时候,如果存储的是叶子结点,那么调用叶子结点的显示函数如果存储的是组合对象,那么递归调用自己的显示函数实现方式:定义单个对象和一原创 2017-03-13 09:24:50 · 394 阅读 · 0 评论 -
设计模式---桥接模式(C++实现)
/**************************************************************************************Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(原创 2017-03-13 09:53:33 · 398 阅读 · 0 评论 -
设计模式---外观模式(C++实现)
/*通常某一个操作的初始化依赖于很多步骤,我们可以把此步骤进行封装做成一个类通过这个类的初始化操作中(对依赖的对象进行创建,然后返回创建此类型的指针)然后在外观类中完成这些函数的调用工作适用于:为子系统中统一一套接口,让子系统更加容易使用。*/#include using namespace std;class SystemA{public:void原创 2017-03-13 10:01:49 · 320 阅读 · 0 评论 -
设计模式---享元模式(C++实现)
/***************************************************使用场景:享元模式:通过共享内存的方式节省内存;创建一个抽象类,继承此抽象类,一部分共享一部分私有,将共享的部分扔进一个存储结点中,如果需要就取出,当创建共享内容的对象都不存在了,那么就释放此内存空间。这个就是享元模式:下面方法用到的知识点:Map是STL的一转载 2017-03-13 10:30:24 · 364 阅读 · 0 评论