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