随笔分类 -  设计模式总结

对于常见设计模式的总结以及其C++实现
摘要:外观模式 外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。 C++代码: #include<iost 阅读全文
posted @ 2018-10-02 21:44 J1ac 阅读(174) 评论(0) 推荐(1)
摘要:代理模式 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 C++代码实现: #include<iostream> using namespace std; //抽象类,抽象的 阅读全文
posted @ 2018-10-02 21:30 J1ac 阅读(160) 评论(0) 推荐(0)
摘要:建造者模式 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中 阅读全文
posted @ 2018-09-30 16:30 J1ac 阅读(202) 评论(0) 推荐(0)
摘要:在看java的io类设计的时候看到了其中对于FileInputStream,BufferedInputStream以及相关io包装类的设计,想起来设计模式里面还有这么重要的一个类,特来此用C++也总结一下。 装饰器模式 一般有两种方式可以实现给一个类或对象增加行为: 1. 继承机制,使用继承机制是给 阅读全文
posted @ 2018-09-28 21:45 J1ac 阅读(169) 评论(0) 推荐(0)
摘要:策略模式 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 C++实现代码: # 阅读全文
posted @ 2018-09-24 19:33 J1ac 阅读(213) 评论(0) 推荐(1)
摘要:单例模式 单例模式(Singleton Pattern):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。 单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式是一 阅读全文
posted @ 2018-09-24 19:08 J1ac 阅读(173) 评论(0) 推荐(0)
摘要:状态模式 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。 C++实现代码: #include<iostream> #include<str 阅读全文
posted @ 2018-09-24 17:25 J1ac 阅读(224) 评论(0) 推荐(1)
摘要:命令模式 命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。 C++实现: #include<iostream> #include<st 阅读全文
posted @ 2018-09-24 17:03 J1ac 阅读(308) 评论(0) 推荐(0)
摘要:抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂 阅读全文
posted @ 2018-09-24 16:36 J1ac 阅读(235) 评论(0) 推荐(0)
摘要:观察者模式 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 C++代码: #include<iostream> #include<vector> using namespace std; 阅读全文
posted @ 2018-09-24 11:50 J1ac 阅读(234) 评论(0) 推荐(0)
摘要:工厂模式 工厂模式(Factory Pattern)是最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 C++实现代码: #include<iostrea 阅读全文
posted @ 2018-09-24 11:04 J1ac 阅读(185) 评论(0) 推荐(0)
摘要:模板模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 C++代码: #include<iostream> using namespace std; 阅读全文
posted @ 2018-09-23 23:20 J1ac 阅读(129) 评论(0) 推荐(0)
摘要:备忘录模式 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 C++实现代码: #include<iostream> #include<string> #include<vector> using namespace std; 阅读全文
posted @ 2018-09-23 19:45 J1ac 阅读(209) 评论(0) 推荐(0)
摘要:享元模式 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 C++实现代码: #include<string> #include<iostream> #incl 阅读全文
posted @ 2018-09-23 17:36 J1ac 阅读(269) 评论(0) 推荐(0)