
设计模式
文章平均质量分 78
l_vaule
植根于内心的修养;无需提醒的自觉;以约束为前提的自由;为别人着想的善良。
展开
-
设计模式总结之观察者模式
观察者模式的角色有两个,一个是观察者,另一个是被观察者。一般情况下当观察者发生一定状态,则由被观察者响应出来。其uml图如下所示:其实我们平时多用的监听器,也是一种变种的观察者模式,其实在我看来,则是一种更加贴切,简单,易懂的观察者模式。下面我用代码来解释一下。package com.modedesign.observer; /** * @author ctt: * @version 创建时...原创 2016-05-10 20:21:18 · 435 阅读 · 0 评论 -
设计模式总结之单例模式
在项目中 有些时候有的对象只需要一个,比方说:线程池(ThreadPool),缓存(cache),对话框,处理偏好设置和注册表的对象,日志对象,充当打印机,显卡等设备对驱动程序对象。事实上这些类对象只能有一个实例,如果制造出多个实例就会导致许多问题产生。在安卓中很多系统服务也是使用的单例模式(譬如InputManager),如果不是单例模式其使用过程中必定会产生很多麻烦。下面我用代码介绍下单例模...原创 2016-05-11 15:48:57 · 350 阅读 · 0 评论 -
设计模式总结之工厂模式
除了直接使用new之外,还有更多制造对象的方法。工厂模式可以使实例化的活动不公开进行,也可以解决因初始化而造成的耦合问题。工厂模式是一种常见的模式,在安卓中BitmapFactory也是使用的简单工厂,但其实现起来的难度却很高。工厂模式有以下几个优点:1.可以使代码清晰,有效的封装变化。将变化封装在工厂之中,调用者无需关注过程,只需要关注结果。2.对调用者屏蔽具体的产品类。3.解耦,产品实例化的过...原创 2016-05-11 20:09:59 · 366 阅读 · 0 评论 -
设计模式总结之装饰者模式
装饰者模式,角色主要由装饰者和被装饰者组成。装饰者模式的设计原则就是多用组合少用继承合开闭原则。其动态的将职责添加到对象身上,如果需要扩展,则提供了比继承更加灵活的实现方式。装饰者有如下特点:1.装饰者和被装饰者有相同父类。2.可以用一个或多个装饰者装饰被装饰者。3.被装饰者可以在自己行为之前或之后添加装饰者的行为。4.对象可以在任何时候被装饰,且动态装饰。5.装饰模式使用的继承不是为了拓展,而是...原创 2016-05-10 21:06:16 · 1137 阅读 · 0 评论 -
设计模式总结之适配器模式
适配器模式是一种很常见的模式,做过安卓的想必对适配器再熟悉不过了,对于生活中的例子比如你需要在欧洲国家使用美国制造的笔记本电脑,就可能需要一个交流电的适配器,用来让美式插头也可以通过适配器得到电力。 下面这段代码是我稍微模仿ListView的适配器模式,但实际上ListView的适配要比我的麻烦的多的多。。。 public interface Adapter { public int get原创 2016-05-12 20:18:35 · 384 阅读 · 0 评论 -
设计模式总结之模板方法模式
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。关于模板方法在我们生活中数不胜数,像我们做一些事情需要按照一定顺序来执行,像HeadFirst上的例子,星巴克冲泡咖啡的时候,先是把水煮沸,再是沸水冲泡咖啡,把咖啡倒进杯子,加糖喝牛奶,加其他东西(其他东西根据个人爱好可以加也可以不加)。 public原创 2016-05-13 20:42:34 · 342 阅读 · 0 评论 -
设计模式总结之状态模式
状态模式:允许对象在内部状态改变时改变他的行为,对象看起来好像修改了它的类,属于对象的行为模式。状态模式如何选择:1.如果代码中存在大量的if-else情况语句。2.对象的行为跟随状态而改变。这个模式将状态封装成独立的类,并将动作委托到当前状态的对象,我们知道行为会随着内部状态的改变而改变。从客户的角度来看:如果你使用的对象能够完全改变他的行为,呢么你会觉得,这个对象是从别的类实例化而来的。然而,...原创 2016-06-03 16:44:58 · 372 阅读 · 0 评论 -
设计模式总结之中介者模式
定义:用一个中介者对象封装一系列的对象交互,中介者使各个对象不需要显示地相互作用,从而使耦合松散,而且可以独立改变它们之间的交互。类型:行为类模式中介者模式主要是为了解决因交互对象较多而造成的耦合度过高,对象关系混乱的问题。例如:一个班级各个同学老师之间如果单独交流,则效率低下,关系复杂。而建立一个qq群,大家都通过qq群来交流,则耦合度将变得松散,qq群则起到中介作用。中介者模式设计到三个成员:...原创 2018-03-06 20:35:26 · 244 阅读 · 0 评论