2018年1月31日

设计模式之模板方法模式(封装算法)

摘要: 第一次设计 下面,我们的学习将从咖啡和茶的制作上开始进行。 泡咖啡的步骤: 把水煮沸 用沸水冲泡咖啡 把咖啡倒入杯子 加糖和牛奶 泡茶的步骤: 把水煮沸 用沸水侵泡茶叶 把茶倒入杯子 加柠檬 下面,用代码来实现上面的步骤: 咖啡的实现: 茶的实现: 改进 从上面的代码可以发现,有两个步骤我们是重复了 阅读全文

posted @ 2018-01-31 09:47 Mr.Tan& 阅读(1387) 评论(0) 推荐(2) 编辑

2018年1月23日

设计模式之适配器模式

摘要: 什么是适配器模式:将一种接口通过适配器转换成另一种接口。适配器相当是中间转换。 一个简单的适配器 下面,我们将一只火鸡变成一只鸭子 实现 鸭子: 火鸡: 适配器: 测试: 适配器使用过程 1.客户通过调用目标适配器的方法对适配器发出请求 2.适配器使用被适配者接口把请求转换成被适配者的一个或多个调用 阅读全文

posted @ 2018-01-23 14:16 Mr.Tan& 阅读(160) 评论(0) 推荐(0) 编辑

2018年1月18日

设计模式之命令模式

摘要: 命令模式可将"动作的请求者"从"动作的执行者"对象中解耦。 在设计中,采用"命令对象",利用命令对象,把请求封装成一个特定的对象,如果每个按钮都存储一个命令对象,那么当按钮被按下的时候,就可以请命令对象做相关工作了。 第一个命令对象 实现命令接口 实现一个打开电灯的命令 使用命令对象 简单测试 定义 阅读全文

posted @ 2018-01-18 16:36 Mr.Tan& 阅读(696) 评论(0) 推荐(0) 编辑

2018年1月16日

设计模式之工厂模式

摘要: 定义 定义一个创建对象的接口,但由子类决定要实例的类是哪一个。工厂方法让类把实例推迟到子类。 设计原则 要依赖抽象,不要依赖具体的类:不能让高层组件依赖于底层组件,并且两者都应该依赖于抽象。 指导方针 变量不可以持有具体类的引用:如果使用new,就会持有具体类的引用。可以用工厂来避开这样的做法。 不 阅读全文

posted @ 2018-01-16 09:25 Mr.Tan& 阅读(1202) 评论(0) 推荐(2) 编辑

2018年1月8日

设计模式之装饰者模式

摘要: 定义 动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 设计原则 类应该对扩展开发,对修改关闭。 第一次设计 现在我们有一家饮料店,下面是它最开始的设计。 Beverage是一个抽象类,店内所有提供的饮料都要继承自此类。并且每个子类都要实现cost()来返回饮料的价格。 阅读全文

posted @ 2018-01-08 10:17 Mr.Tan& 阅读(654) 评论(0) 推荐(4) 编辑

2018年1月4日

设计模式之观察者模式

摘要: 什么是观察者模式 它定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知。 设计原则 为了交互对象之间的松藕合设计而努力:松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的互相依赖降到了最低。 图解观察者模式 一个新的对象需要订阅:当有一 阅读全文

posted @ 2018-01-04 14:55 Mr.Tan& 阅读(1039) 评论(2) 推荐(2) 编辑

2017年12月25日

设计模式之策略模式

摘要: 定义 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 设计原则 1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 2.针对接口编程,而不是针对实现编程。 3.多用组合,少用继承:下面的例子中,将两个类结合起来, 阅读全文

posted @ 2017-12-25 09:44 Mr.Tan& 阅读(627) 评论(2) 推荐(3) 编辑

2017年10月27日

数据结构之栈

摘要: 栈模型 栈有时又叫做LIFO(先进后出)。 一般模型:存在某个元素位于栈顶,而该元素是唯一的可见元素。 栈可能是计算机科学中数组之后最基本的数据结构 栈的实现 栈的链表实现 优点:没有任何地方设计栈大小(空栈除外) 缺点:对malloc和free调用都是昂贵的。 栈的数组实现 每一个栈有一个TopO 阅读全文

posted @ 2017-10-27 10:02 Mr.Tan& 阅读(477) 评论(0) 推荐(0) 编辑

2017年10月25日

数据结构之散列

摘要: 散列是一种用于以常数平均时间执行插入,删除和查找的技术 一般想法 一个关键字就是一个带有相关值的字符串。我们把表大小记作Table-Size,并将其理解为散列数据结构的一部分而不仅仅是浮动于全局的某个标量。 每个关键字被映射到从0到TableSize-1的这个范围中的某个数,这个映射就叫做散列函数 阅读全文

posted @ 2017-10-25 09:19 Mr.Tan& 阅读(3277) 评论(0) 推荐(1) 编辑

2017年10月20日

数据结构之队列

摘要: 像栈一样,队列也是表。使用队列时插入在一端进行而删除则在另一端进行。 队列基本模型 队列的数组实现 如同栈一样,对于队列而言任何表的实现都是合法的。 对于每一个队列数据结构,我们保留一个数组Queue[]以及位置Front和Rear,它们代表队列两端。还要记录实际存在队列中元素的个数Size。 这种 阅读全文

posted @ 2017-10-20 09:40 Mr.Tan& 阅读(257) 评论(0) 推荐(0) 编辑

导航