摘要: 最近系统的看了下设计模式,对于单例又有一些新的理解: 1.单例和静态变量有什么优缺点: 静态变量一般在定义的时候就初始化了(有些语言要求这样),如果不用是一种浪费,而单例一般是延迟实例化(第一次用的时候才实例化),如果要实例化的对象十分消耗内存,那么就要关心这点。 静态变量还是可以被更改的,有时候要 阅读全文
posted @ 2016-11-07 21:45 张驰小方块 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 依赖倒置:要依赖抽象,不要依赖具体类。 “倒置”的含义: 如果依赖于具体类去设计。那么画出来的图,高层组件在上面,底层组件在下面,高层组件依赖于底层组件。p138。 如果依赖抽象,例如使用工厂方法后,高层组件依赖于抽象类,底层组件也依赖于抽象类,有一部分箭头就被倒置了,高层组件不再依赖底层组件,而两 阅读全文
posted @ 2016-11-03 15:12 张驰小方块 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 1.证书配置:http://blog.csdn.net/songchunmin_/article/details/51316806 2.编码阶段:http://blog.csdn.net/songchunmin_/article/details/51291752 3.官方文档:https://dev 阅读全文
posted @ 2016-11-02 12:11 张驰小方块 阅读(4652) 评论(4) 推荐(1) 编辑
摘要: 工厂模式的核心是: 一个抽象类里有两个方法,一个是工厂方法,用来创建产品,另外一个方法是对产品的使用。那么对于产品的创建(最后到底是哪种产品),其实是具体实现抽象类的时候做的事情,也就是工厂模式的核心:“由子类决定要实例化的类是哪一个,把类的实例化推迟到了子类”。 类图见《Head Fisrt 设计 阅读全文
posted @ 2016-10-25 22:03 张驰小方块 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 继承导致的缺点: 代码在多个子类中重复(有些父类的行为,子类必须覆盖,例如有些鸭子不会飞,那么需要覆盖fly,则导致很多不会飞的子类都有一个什么都不干的fly方法) 运行时的行为不容易改变(实例一旦创建,行为就确定了,很难再进行改变,例如给橡皮鸭装上火箭发射器) 很难知道所有鸭子的全部行为(总有需求 阅读全文
posted @ 2016-10-09 10:41 张驰小方块 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 什么时候使用: 有很多算法,都是为了做一件事,使用相同的数据源,通过这些不同的算法,得到相同或者不同的结果。 例如对一组数据进行排序,提供了快排、冒泡、直接排序等算法,然后根据需要动态的选择其中的一种。 关键: 将算法封装成一个一个的类,任意地替换。有一个Context类,可以动态的配置使用的策略( 阅读全文
posted @ 2016-10-08 12:37 张驰小方块 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 外观设计模式比较简单,我们平时就会用的比较多。 本质就是为了上层更加方便的使用某个系统,提供一个中间的、总结性的、相对较统一的中间层。使得系统更加易用(上层只需要使用中间层调用系统的功能就好)。 为啥叫外观模式:外观是指低一层(或者被调用层)系统的抽象出来的,对外的接口。外界其实只是使用这个接口就可 阅读全文
posted @ 2016-08-08 11:25 张驰小方块 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 本质:装饰器模式可以在不使用继承的前提下,对于一个对象添加新的功能。是不是太像iOS的catagory了? 最大的好处,当然是不使用继承的好处。(高耦合) 看看代码: 我们将创建一个Shape接口和实现了Shape接口的实体类。然后我们创建一个实现了Shape接口的抽象装饰类ShapeDecorat 阅读全文
posted @ 2016-08-04 21:55 张驰小方块 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 一句话:工厂模式输出具体产品(对象实例);抽象工厂模式输出工厂。 阅读全文
posted @ 2016-07-26 22:02 张驰小方块 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 其实简单工厂,在《Head First 设计模式》这本书里,并不是一个设计模式,而比较像一种编程习惯。另外个人认为,之所以说简单工厂并不是工厂模式,是因为工厂模式的精髓是“将创建延迟到子类进行”,简单工厂并没有体现这一点。 简单工厂特点: 把创建对象的代码提取了出来 创建的产品(工厂出产的产品)都依 阅读全文
posted @ 2016-07-26 21:46 张驰小方块 阅读(249) 评论(0) 推荐(0) 编辑