浏览 2590 次
锁定老帖子 主题:设计模式的笔记总结
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-13
最后修改:2009-08-27
定义:确保一个类的实例只有一个, 分为:懒汉式和饿汉式; 区别:一个是在类加载的时候就直接实例化了,而另一个则是第一次调用他的一个公有的、静态的、同步的方法才能得到实例化, 如果要经常要用到该对象的话则用饿汉式,如果可用可不用的话就用懒汉式。 特征:声明一个私有的静态的类字段, 二是私有化构造器, 三是申明一个公有的静态的方法。 四是属于懒汉式的 判断私有化的类变量是否为空,如果为空的话才去生成该对象。 五是对外只提供一个唯一的访问函数; 工厂模式 Factory 针对接口编程,不用去依赖实现类;它隐藏了new的关键字,对其统一实例化。通过去调用工厂的静态方法才得到该对象,这样的话不用每次都去new操作,程序的业务逻辑 也就不会混乱,统一由工厂创建,就比清晰。还有就是它的扩展性很强。 解决问题:用来解决一个一个类的生成方式过多,容易发生变动,或者是父类和子类之间容易替换的地方。 例子:你买东西,你只要自己和售货员说买什么,不用管他到底是哪里生产的吧。 模版模式: 模版模式主要是父类指定流程,子类去实现。 解决问题:解决子类之间代码或者是流程的重复问题。 例子:就拿我们的课程表来说吧,每天都会按照一个课程表去上课,这个课程表就相当于父类定义的一个流程,然后只要老师安装这个课程表给我们上课就行了。OK````````` 门面模式(外观模式) Facade 门面模式为整个子系统提供一种高层次的简单接口,以便减少复杂度和依赖性,使得子系统的使用简单并且更容易管理。 解决问题:子接口繁多,调用复杂,内部交互地方比较多。 例:去一个商场买东西的时候,你需要买什么,只需要他给你导购的人就行了,你买东西就方便多了. 策略模式 Strategy 定义一系列的算法,然后把这些算法一个个封装起来,并且可以使他们相互交换 解决问题:某个具体的解决方法有很多种可选择的实现。 有国道、还有小道都可以去深圳,要速度快点就上高速公路吧 观察模式 Observer 对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 解决问题:解决多个对象间相互依赖关系的相互通知 一个群,有几个好友,当你发送出消息,他们都有得到通知。 适配器:Adapter 定义:将一个接口转换成客户希望的接口,使得原本两个不兼容的接口能够在一起工作。 例子: 在现实生活中,像这种适配器我们经常见到,而且还是经常使用它,如:手机在充电的时候,不可能直接在220V电源上直接充电,而是手机“充电器”进行转换成手机需要的电压才可以正常充电,否则就不可以完成充电,这个“充电器”就起到了适配的作用。 装饰器模式(油漆工模式):Decorator 定义:在不改变原来的代码情况下,动态地给一个对象添加一些新功能,Decorator模式相比生成子类更为灵活。 解决问题:一个对象需要经常动态增加属性或指责。 例子:就拿装修房子吧,首先它会用石灰去粉刷墙壁,然后你需要搞的好看点的话会去贴上一 些壁纸,你要再搞的好看点的话,就再去给它加上几个盏浪漫点的壁灯! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-08-13
baiiiuuu 写道 单例模式:
定义:确保一个类的实例只有一个, 分为:懒汉式和饿汉式; 区别:一个是在类加载的时候就直接实例化了,而另一个则是第一次调用他的一个公有的、静态的、同步的方法才能得到实例化, 如果要经常要用到该对象的话则用饿汉式,如果可用可不用的话就用懒汉式。 特征:声明一个私有的静态的类字段, 二是私有化构造器, 三是申明一个公有的静态的方法。 第四点是属于懒汉式的 判断私有化的类变量是否为空,如果为空的话才去生成该对象。 对外只提供一个唯一的访问函数; 工厂模式 Factory 针对接口编程,不用去依赖实现类;它隐藏了new的关键字,对其统一实例化。通过去调用工厂的静态方法才得到该对象,这样的话不用每次都去new操作,程序的业务逻辑 也就不会混乱,统一由工厂创建,就比清晰。还有就是它的扩展性很强。 解决问题:用来解决一个一个类的生成方式过多,容易发生变动,或者是父类和子类之间容易替换的地方。 例子:你买东西,你只要自己和售货员说买什么,不用管他到底是哪里生产的吧。 模版模式: 模版模式主要是父类指定流程,子类去实现过程。 解决问题:解决子类之间代码或者是流程的重复问题。 在一个工厂,安装一个单车,你需要定义一个流程具体先安装什么,后安装什么。 门面模式(外观模式) Facade 门面模式为整个子系统提供一种高层次的简单接口,以便减少复杂度和依赖性,使得子系统的使用简单并且更容易管理。 解决问题:子接口繁多,调用复杂,内部交互地方比较多。 例:去一个商场买东西的时候,你需要买什么,只需要他给你导购的人就行了,你买东西就方便多了、 策略模式 Strategy 定义一系列的算法,然后把这些算法一个个封装起来,并且可以使他们相互交换 解决问题:某个具体的解决方法有很多种可选择的实现。 有国道、还有小道都可以去深圳,要速度快点就上高速公路 观察模式 Observer 对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 解决问题:解决多个对象间相互依赖关系的相互通知 一个群,有几个好友,当你发送出消息,他们都有得到通知。 适配器:Adapter 定义:将一个接口转换成客户希望的接口,使得原本两个不兼容的接口能够在一起工作。 生活中的例子: 在现实生活中,像这种适配器我们经常见到,而且还是经常使用它,如:手机(深信大家都见过),我们手机在充电的时候,不可能直接在220V电源上直接充电,而是手机“充电器”进行转换成手机需要的电压才可以正常充电,否则就不可以完成充电,这个“充电器”就起到了适配的作用。 装饰器模式(油漆工模式):Decorator 定义:在不改变原来的代码情况下,动态地给一个对象添加一些新功能,Decorator模式相比生成子类更为灵活。 解决问题:一个对象需要经常动态增加属性或指责。 不错!学习了! |
|
返回顶楼 | |
发表时间:2009-08-13
楼主的确理解了
|
|
返回顶楼 | |
发表时间:2009-08-13
楼上的确理解了....
|
|
返回顶楼 | |