随笔分类 - 设计模式
摘要:STL里的iterator就是应用了iterator模式。 一、什么是迭代模式 Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator按顺序进行遍历访问的设计模式。 二、不使用迭代模式的应用 在应用Iterator模式之前,首先应该明白I
阅读全文
摘要:说起Adapter,STL里的stack和queue都是adapter,底层是deque,隐藏了deque的一些接口,使得其可以达到FIFO是queue,LIFO是stack。 再说通透一点,adapter就是适配器,电源适配器知道吧,把220v交流电转换为笔记本可接受的电压和电流就是我们常见的电源
阅读全文
摘要:我想大家小时候都有用蜡笔画画的经历吧。红红绿绿的蜡笔一大盒,根据想象描绘出格式图样。而毛笔下的国画更是工笔写意,各展风采。而今天我们的故事从蜡笔与毛笔说起。 设想要绘制一幅图画,蓝天、白云、绿树、小鸟,如果画面尺寸很大,那么用蜡笔绘制就会遇到点麻烦。毕竟细细的蜡笔要涂出一片蓝天,是有些麻烦。如果有可
阅读全文
摘要:简单工厂模式 简单工厂模式其实不是一个设计模式,反而比较像一种编程习惯。主要我们定义一个非常简单的类主要负责帮我们生产不同的产品。类图如下: 客户端通过简单工厂可以生产出具体产品A,具体产品B,具体产品C。 简单工厂: 客户端,想要建立一个pizza store,这个pizza store里有一个简
阅读全文
摘要:定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有
阅读全文
摘要:UML类图: 举一个生活中的例子:假如一个写字楼的员工定了外卖。是定外卖的人每10分钟就到楼下转一圈儿看外卖到了。还是送外卖的小哥一个个工位的送过去? 都不是。 实际上外卖小哥到了写字楼楼下给每个员工打电话,员工就会下楼拿着自己外卖上楼。 实际上,这就是一个观察者模式。外卖小哥到写字楼楼下--》自己
阅读全文
摘要:UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可
阅读全文
摘要:1. 概述 在软件开发的过程中,当遇到一个“复杂的对象”的创建工作,该对象由一定各个部分的子对象用一定的算法构成,由于需求的变化,复杂对象的各个部分经常面临剧烈的变化,但将它们组合在一起的算法相对稳定。 例子1:买肯德基 典型的儿童餐包括一个主食,一个辅食,一杯饮料和一个玩具(例如汉堡、炸鸡、可乐和
阅读全文
摘要:单例模式:一个类始终只有一个对象,无法直接new对象,只能通过类的特定接口来创建对象,因此也属于创建类模式。 恩,我们需要考虑线程安全性,对不对? 因此我们再给static成员变量赋值的时候,需要锁。C++里没有锁,我们可以借用第三方库,例如boost。 一、懒汉模式:即第一次调用该类实例的时候才产
阅读全文