
设计模式
wang13342322203
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式
http://blog.csdn.net/lovelion/article/details/17517213http://design-patterns.readthedocs.io/zh_CN/latest/index.html原创 2019-05-24 10:04:48 · 111 阅读 · 0 评论 -
第二讲 策略模式
动机:在软件的构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变的异常复杂,而且有时候支持不使用的算法也是一种负担。如果在运行时根据需要透明的更改对象的算法?将算法与对象本身解耦从而避免上述问题?代码示例解决多算法问题的一般代码这里SalesOrder对象就和具体的计税算法绑定到了一起,通常见到else if语句出现,就意味着需...转载 2019-07-30 17:46:40 · 119 阅读 · 0 评论 -
设计模式六大原则
设计模式六大原则1.单一原则(Single Responsibility Principle):一个类只负责一项职责,尽量做到类的只有一个行为原因引起变化; a、业务对象(BO business object)、业务逻辑(BL business logic)拆分;2.里氏替换原则(LSP liskov substitution principle):子类可以扩展父类的功能,但不能改变...转载 2019-07-31 21:57:33 · 105 阅读 · 0 评论 -
设计模式总结 By李建忠老师
创建型模式" Singleton模式解决的是实体对象个数的问题。除了Singleton之外,其他创建型模式解决的都是new所带来的耦合关系。" Factory Method, Abstract Factory, Builder都需要一个额外的工厂类来负责实例化“易变对象”,而Prototype则是通过原型(一个特殊的工厂类)来克隆“易变对象”。" 如果遇到“易变类”,起初的设计通常从Fact...转载 2019-07-31 21:59:15 · 425 阅读 · 0 评论 -
[GeekBand] 设计模式之观察者模式学习笔记
本文参考文献::GeekBand课堂内容,授课老师:李建忠 :网络资料:http://blog.csdn.net/hguisu/article/details/7556625 本文仅作为自己的学习笔记,不代表权威,因为是初学,有错误烦请大家指正,谢谢。1、什么是观察者模式,应用场所有哪些? 观察者模式(有时又被称为发布-...转载 2019-07-31 22:03:13 · 156 阅读 · 0 评论 -
设计模式-Decorator装饰模式
本文是我看完李建忠老师装饰模式视频后的学习笔记,图和代码也是摘自视频问题引出:在某些情况下我们可能会“过度的使用继承来扩展对象的功能”,由于继承为类型引入的静态特质(解释静态特质:只会调用固定的基类的函数,不会变化),使得这种扩展方式缺乏灵活性,并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多的子类的膨胀。如何使“对象功能的扩展”能够根据需要来动态的实现...转载 2019-07-31 22:52:13 · 86 阅读 · 0 评论 -
设计模式-strategy策略模式
问题引出:某些对象使用的算法多种多样,经常改变,如果将这些算法都编码到对象中,对象会很复杂,而且有时候支持不使用的算法也是一种性能负担,如何在运行时根据需要透明的更改对象的算法,将算法与对象本身解耦,从而避免上述问题。样例:样例描述:是一个关于海外购物过程中结账时的汇率问题。如果符合哪个国家就使用哪个国家的汇率。样例代码:enum TaxBase { CN_Ta...转载 2019-07-31 22:53:23 · 106 阅读 · 0 评论 -
C++设计模式 六桥模式(Bridge)
将抽象部分(业务功能)与实现部分(平台实现)分离,是他们都可以独立地变化。——《设计模式》GoF动机由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个维度的变化假设有如下的通信的伪码描述包括登陆、发信息、播放音乐等等的功能,同时也支持不同的平台的支持,比如PC、移动端等,其中版本也具有不同的功能,比如精简版和完整版。class Messager{public...转载 2019-08-01 17:25:03 · 124 阅读 · 0 评论 -
设计模式的三种类型
设计模式(GOF模式)分为三种类型,共23类。一、创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。二、结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。三、行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。Abstract Factory(抽象工...转载 2019-08-01 18:02:35 · 845 阅读 · 0 评论 -
设计模式总结--李建忠
本文地址:http://www.tongxinmao.com/Article/Detail/id/406面向对象设计原则依赖倒置原则(DIP)• 高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象(稳定) 。• 抽象(稳定)不应该依赖于实现细节(变化) ,实现细节应该依赖于抽象(稳定)。开放封闭原则(OCP)• 对扩展开放,对更改封闭。...转载 2019-08-01 20:16:52 · 1163 阅读 · 0 评论 -
工厂模式
代码://FileSplitter1.cpp class ISplitter{public: virtual void split()=0; virtual ~ISplitter(){}};class BinarySplitter : public ISplitter{ };class TxtSplitter: public ISpli...原创 2019-08-01 21:44:03 · 125 阅读 · 0 评论 -
https://blog.csdn.net/hjf19790118/article/details/6965777
创建型模式" Singleton模式解决的是实体对象个数的问题。除了Singleton之外,其他创建型模式解决的都是new所带来的耦合关系。" Factory Method, Abstract Factory, Builder都需要一个额外的工厂类来负责实例化“易变对象”,而Prototype则是通过原型(一个特殊的工厂类)来克隆“易变对象”。" 如果遇到“易变类”,起初的设计通常从Fact...转载 2019-07-30 17:44:36 · 241 阅读 · 0 评论 -
C++11 修复了DCL双重检查锁定问题(单件模式)
相关文章一:众多设计模式中,单例模式比较常见的一种,面试和工作中也会经常接触到。本文以一个C++开发者的角度来探讨单例模式几种典型实现。设计模式经典GoF定义的单例模式需要满足以下两个条件:保证一个类只创建一个实例。 提供对该实例的全局访问点。如果系统有类似的实体(有且只有一个,且需要全局访问),那么就可以将其实现为一个单例。实际工作中常见的应用举例日志类,一个应用往往只对应...转载 2019-08-02 17:36:54 · 574 阅读 · 0 评论 -
单件模式
class Singleton{private: Singleton(); Singleton(const Singleton& other);public: static Singleton* getInstance(); static Singleton* m_instance;};Singleton* Singlet...原创 2019-08-02 17:31:49 · 176 阅读 · 0 评论 -
1、策略模式(java23种设计模式之一: 策略模式)
原地址:https://www.cnblogs.com/MrRightZhao/p/8000421.html由于最近在研究学习设计模式,我会用自己的理解方式来表述对设计模式的学习和认识,通过最常用、好记的案例来记住和使用设计模式,希望对设计代码方面有所提高和改进。一.应用背景 在软件开发中常常遇到这种情况,实现某一个功能有多种算法或者策略,我们可以根据应用场景的不同选择不同的算法...转载 2019-06-05 21:28:03 · 97 阅读 · 0 评论 -
1、策略模式(C++ 之 策略模式)
原地址:https://www.cnblogs.com/xinxue/p/5271184.html1 会飞的鸭子 Duck 基类,含成员函数 Swim() 和 Display();派生类 MallardDuck,RedheadDuck 和 RubberDuck,各自重写 Display()class Duck {public: void Swim(); ...转载 2019-06-05 22:08:53 · 874 阅读 · 0 评论 -
1、策略模式(设计模式 c++版(11)——策略模式)
原地址:https://blog.csdn.net/Jecklin_online/article/details/82858181定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换示例一:策略模式(通用版)1. 类图18-32. 类图说明策略模式使用的就是面向对象的继承和多态机制Context 封装角色。也叫上下文角色,起承上启下的封装作用,屏蔽高层模块对...转载 2019-06-05 22:15:11 · 176 阅读 · 0 评论 -
设计模式之观察者模式(c++)
原地址:https://www.cnblogs.com/carsonzhu/p/5770253.htmlObserver 模式应该可以说是应用最多、影响最广的模式之一,因为 Observer 的一个实例 Model/View/Control( MVC) 结构在系统开发架构设计中有着很重要的地位和意义, MVC实现了业务逻辑和表示层的解耦。在 MFC 中, Doc/View(文档视图结构)提供了...转载 2019-06-14 15:04:20 · 168 阅读 · 0 评论 -
设计模式C++实现(15)——观察者模式
原文:https://blog.csdn.net/wuzhekai1985/article/details/6674984软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要...转载 2019-06-14 15:42:31 · 145 阅读 · 0 评论 -
装饰者模式及C++实现
原地址:https://www.cnblogs.com/cxjchen/p/3161686.html装饰者模式时常会遇到这样一种情况,我已经设计好了一个接口,并且也有几个实现类,但是这时我发现我设计的时候疏忽了,忘记了一些功能,或者后来需求变动要求加入一些功能,最简单的做法就是修改接口,添加函数,然后继承类中都相应的添加实现,这样做倒也没什么问题,但是如果这种变化来个好几次或者继承类非常多...转载 2019-06-21 20:44:44 · 311 阅读 · 0 评论 -
设计模式之装饰模式 c++实现和详细分析
原地址:https://blog.csdn.net/hnust_xiehonghao/article/details/25653819Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。 它使功能具有动态性已经开发完毕的对象,后期由于业务需要,对旧的对象需要扩展特别多的功能,这时候使用给对象动态地添加新的状态或者...转载 2019-06-21 21:04:24 · 218 阅读 · 0 评论 -
Java开发之设计模式总结:工厂模式
原地址:https://baijiahao.baidu.com/s?id=1625606999883136508&wfr=spider&for=pc工厂模式属于创建型设计模式,用工厂方法代替new操作,让子类去决定实例化哪个类,工厂方法将一个类的实例化延迟到子类什么是工厂模式定义一个创建对象的接口,由子类去决定实例化哪一个类,将实例化对象的操作延迟到子类优点:解...转载 2019-06-29 21:45:32 · 123 阅读 · 0 评论 -
设计模式之三种工厂模式
原地址:https://www.cnblogs.com/LUO77/p/5785906.html简单工厂模式简单工厂模式其实不是一个设计模式,反而比较像一种编程习惯。主要我们定义一个非常简单的类主要负责帮我们生产不同的产品。类图如下:客户端通过简单工厂可以生产出具体产品A,具体产品B,具体产品C。简单工厂:package my.oschina.net.design.fa...转载 2019-06-29 22:05:29 · 158 阅读 · 0 评论 -
c++设计模式之工厂模式
原文:https://www.cnblogs.com/cxq0017/p/6544517.html1:简单工厂模式 简单工厂模式是属于创建型模式,又叫做静态工厂方法(static Factory Method)模式,简单工厂模式是由一个工厂对象决定创建出来哪一种产品类的实例. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一类产品类(这些产品类继承自一个父类或接...转载 2019-06-29 22:50:16 · 151 阅读 · 0 评论 -
抽象工厂模式
//EmployeeDAO1.cpp class EmployeeDAO{ public: vector<EmployeeDO> GetEmployees(){ SqlConnection* connection = new SqlConnection(); connection->...原创 2019-08-01 21:47:59 · 136 阅读 · 0 评论