模式定义 状态模式同意对象在内部状态改变时改变它的行为,对象看起来好像改动了它的类。 模式结构: Context: 环境定义客户感兴趣的接口 维护一个ConcreteState子类的实例,这个实例定义当前状态 State: 定义一个接口封装与Context的一个特定状态相关的行为 ConcreteS
转载 2017-04-23 20:30:00
165阅读
2评论
#include <iostream>#include <strin
转载 2022-06-14 05:35:55
63阅读
模式定义: 组合模式同意你将对象组合成树形结构来表现“总体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。 这个模式可以创建一个树形结构,在同一个结构中处理嵌套菜单和菜单项组。通过菜单和项放在同样结构中,我们创建了一个“总体/部分”层次结构,即由菜单和菜单项组成的对象树。使用组合
转载 2017-06-08 08:38:00
110阅读
2评论
Singleton是设计模式中比较简单的一个。园中的朋友们应该都很熟悉了。前段时间参加xxx外企的面试,和面试官讨论C++的时候正好写了一个。当时由于在有些地方考虑不太周全,代码出现了一些疏漏。不过最终写出了合格的实现。 Singleton模式 要求: 1、保证类只有一个实例 2、实例只能由类自身构造 3、必须为其他所有对象提供这一对象以访问。   由此,我们画出Singleton模式的结构图如
[root@ ~/learn_code/design_pattern/19_order]$ cat order.cpp#include <iostream>#include <string>#inclu
转载 2022-06-13 18:03:30
56阅读
程序优化是用于消除程序中大量的if else这种判断语句#include <iostream>#include <string>using namespace std;class CashSuper{public
转载 2022-06-13 18:03:39
162阅读
装饰( Decorator )模式又叫做。通过一种对,是继承关系的一个替换方案。装饰模式就是把要中,并让这个类,当需要执行时,客户端就可以有选择地、按顺序地使用装饰功能包装对象。装饰模式可以动态的给一个对象添加一些额外的职责。就增加功能来说,此模式比生成子类更为灵活,通过子类继承的方式,但是如果后续继续增加功能的话,便要继续继承现有的类,如此就会使继承的层次越来越深,不利与代码的维护和可读性。故最好的方式便是通过装饰者模式来完成。
一. 问题 在面向对象系统的分析与设计过程中常常会遇到这样一种情况:对于某一用继承的方式实现这一点:将逻辑
转载 2017-04-16 16:52:00
75阅读
定义: 抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不是要明确指定具体类。 作用: 抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不需要知道实际产出的具体产品是什么。这样一来,客户就从具体的产品被解耦。 UML图: 注:此处只给出部分图 代码实现: /***...
转载 2009-02-17 10:26:00
32阅读
代理模式
原创 2023-03-16 17:44:00
159阅读
策略模式是一种比较常用的设计模式,他主要体现在对象可以有某个行为,但是在不同的场景时用不同的实现方法!在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…或者case等条件判断语句来进行选择。这两种实现方法我们都可以称之为硬编码,如果需要增加一种新的查找算法,需要修
转载 2013-05-10 20:57:00
88阅读
2评论
模式定义:        装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。        装饰者和被装饰者有同样的超累类型。        能够用一个或多个装饰者包装一个对象。        既然装饰者和被装饰者对象有同样的超累类型,所以在不论
转载 2019-04-23 15:38:00
68阅读
2评论
设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:单例模式、原型
原创 2022-11-07 19:22:50
270阅读
单例模式 单例模式顾名思义,保证一个类仅可以有一个实例化对象,并且提供一个可以访问它的全局接口。实现单例模式必须注意一下几点: 单例类只能由一个实例化对象。 单例类必须自己提供一个实例化对象。 单例类必须提供一个可以访问唯一实例化对象的接口。 单例模式分为懒汉和饿汉两种实现方式。 懒汉单例模式 懒汉 ...
转载 2021-08-09 11:42:00
136阅读
2评论
文章目录C++设计模式重新认识面向对象面向对象原则设计模式分类方法C++设计模式重新认识面向对象从宏观层面看,面向对象的构建方式更能适应软件的变化,能将变化带来的影响降到最小从微观层面看,面向对象的方式更强调各个类的“责任”,由需求变化导致的新增类型不应该影响到原来类型对象
原创 2021-12-04 17:54:32
312阅读
1、工厂模式 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。 1.1、简单工厂模式 主要特点是需要在工厂类中做判断,从而创造相应 ...
转载 2021-09-26 09:55:00
82阅读
设计模式代表了最佳的实践,在面向对象的编程中被
原创 2022-12-14 22:18:51
102阅读
模式定义: 工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 模式结构: Creator是一个类,它实现了全部操纵产品的方法,但不实现工厂方法。Creator的全部子类都必须实现工厂方法(factoryMethod()),以实际制造出产品。 全
定义: 定义了算法族,分别封装起来,让它们之间可以互相替换,以此模式让算法的变化独立于使用算法的客户。 UML图: 代码实现: /************************************************************************/ /* ...
转载 2009-02-23 23:09:00
47阅读
#ifndef DECORATOR_H_ #define DECORATOR_H_ #include using namespace std; class Beverage { public: virtual string GetDescription() { ...
转载 2008-12-04 22:02:00
30阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5