设计模式
文章平均质量分 65
胡萝卜yueh
这个作者很懒,什么都没留下…
展开
-
【设计模式】单例模式的三种形式 C++ 创建型模式
单例模式顾名思义就是只能生成一个示例。其实在我个人不太成熟的理解上来说,单例模式的作用等同于在所有的成员变量和成员类前面加上一个“static”。所有调用这个类生成的实例都是同一个,因此我认为等同于将所有的类资源变成静态资源。既然要有且仅有生成一个实例,那么我们需要做的就两件事。1.将所有能够生成类实例的途径全部堵上,例如构造函数、拷贝构造函数私有化,外部无法访问也就无法通过他们生成实例了...原创 2018-10-24 18:17:47 · 244 阅读 · 0 评论 -
【设计模式】工厂模式 C++ 创建型模式
简单工厂模式简单工厂模式其实不难理解,我们有一间食品工厂,工厂的流水线用来生产各种口味的薯片。根据市场的要求,流水线需要随时切换生产的口味。那么问题来了。假设不使用任何设计模式,那么我们应该怎么做?假设不使用任何设计模式,那么我们是不是应该将各种口味的薯片各自封装成一个函数,然后根据不同的需求调用不同的函数?要调用不同的函数,那么我们必须要知道代表口味的函数名称。如果有成百上千中口味呢...原创 2018-11-01 21:36:08 · 141 阅读 · 0 评论 -
【设计模式】建造者模式 C++ 创建型模式
建造者模式属于创建型模式适用于:需要生成的产品对象有复杂的内部结构 需要生成的产品对象的属性相互依赖 对象的创建过程独立于创建该对象的类 隔离复杂对象的创建和使用模式优点:将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象 每一个剧吐建造者都相对独立,与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者,拓展方便,符合开闭原则 可...原创 2018-11-27 15:11:10 · 203 阅读 · 0 评论 -
【设计模式】原型模式 C++ 创建型模式
创建型模式使用环境:创建新对象成本较大,新对象可以通过复制已有对象来获得,如果是相似对象,则可以对其成员变量稍作修改 系统要保存对象的状态,而对象的状态变化很小 需要避免使用分层次的工厂类来创建分层次的对象,并且类的实例对象只有一个或很少的几个组合状态,通过复制原型对象得到新实例可能比使用构造函数创建一个新实例更加方便。模式优点:简化对象的创建过程,通过复制一个已有实例可以提高新...原创 2018-11-27 19:28:09 · 224 阅读 · 2 评论 -
【设计模式】适配器模式 C++ 结构型模式
结构性模式 :关注如何将现有类或对象组织在一起形成更加强大的结构Adapter定义:将一个类的接口转化成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。存在不兼容的结构,例如方法名不一致适用环境:系统需要使用一些现有的类,而这些类的接口不符合系统的需要,甚至没有这些类的源代码 创建一个可以重复使用的类,用于和一些彼此之间没有太大关联的类,包括一些可能在将来引进的...原创 2018-11-27 22:01:17 · 295 阅读 · 0 评论 -
【设计模式】桥接模式 C++ 结构型模式
结构性模式 :关注如何将现有类或对象组织在一起形成更加强大的结构【对象结构性模式】定义:将抽象部分与它的实现部分解耦,使得两者都能够独立变化。 又称:柄体模式(Handle and Body)或接口模式(Interface) 用抽象关联取代了传统的多层继承 将类之间的静态继承关系转化成动态的对象组合关系适用环境:需要在抽象化和具体化之间增加更多的灵活性,避免在两个层次之间建立静...原创 2018-11-28 12:22:00 · 163 阅读 · 0 评论 -
【设计模式】迭代器模式 C++ 行为型模式
迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,且不用暴露该对象的内部表示。【对象行为型模式】定义: 分聚合类(Aggreate Classes)和迭代类(Iterator) 又名游标(Cursor)模式 访问一个聚合对象中元素但是又不用暴露它的内部结构适用环境:访问一个聚合对象的内容而无需暴露它的内部表示 需要为一个聚合对象提供多种遍历方式 为遍历不同的聚合机构提...原创 2018-12-03 20:29:25 · 199 阅读 · 0 评论