设计模式
YK_love_GQ
暂时没有
展开
-
如何理解java中的接口和抽象类
抽象类与接口的区别 抽象类体现的是一种继承关系,可以理解为“是什么”;接口体现的是一种实现关系,可以理解为“实现了什么”。 类中如果有一个方法是抽象的,则这个类就是抽象类。抽象类中也可以有具体方法。如果抽象类被继承,则这个类中的抽象方法必须被覆盖。而接口中的方法必须都被实现,而且方法是没有实现的,都是空方法,是完全抽象的,它们默认都是抽象方法。可以说,接口是抽象类的一个特例。 ...原创 2012-01-29 19:30:26 · 154 阅读 · 0 评论 -
策略模式--从源码TabHost中看策略模式
什么是策略模式: 针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。 应当由客户端自己决定在什么情况下使用什么具体策略模式。 策略模式不适合于处理同时嵌套多于一个算法的情形。 针对的设计原则: 封装变化的。多用组合,少用继承。针对接口编程,不针对实现编程。 优缺点: 优点:...2012-10-31 00:42:23 · 147 阅读 · 0 评论 -
装饰者模式--除继承外的另一种扩展方式
什么是装饰者模式: 在java中,如果你希望扩展现有类的功能,那么你一定首先想到的是继承现有类(至少我是这样),那么装饰者模式可以让你不使用继承,一样扩展现有类的功能,且不需要对现有类进行修改,让你多了一种扩展现有类的功能的选择。 设计原则 对扩展开发,对修改关闭。 java.io包内的大量的类都是装饰者,下面这张图就一目了然了 ...2012-10-31 23:54:17 · 132 阅读 · 0 评论 -
单例模式--只有一个实例
什么是单例模式: 确保一个类只有一个实例,并提供一个全局访问点。注意:使用起来类似静态方法,但是它不是静态方法,而是类。需要new关键字来实例化。 单例模式的基本使用方式可以概括为3个步骤:1.创建一个private静态变量;2.创建一个private空构造器;3.创建一个public静态访问点,用来将唯一实例返回给外部调用者。 基本使用方式:...2012-11-03 12:43:57 · 283 阅读 · 0 评论 -
观察者模式
什么是观察者模式:定义了对象之间的一对多依赖,这样一来,当主题对象改变状态时,它的所有依赖者都会收到通知并自动更新。这就好比订阅报纸,我们知道出版社每天都要出版报纸(主题Subject),如果你(观察者Observer)订阅了报纸,那么出版社一旦出版了报纸,就会给每个订阅过报纸的用户派发一份报纸。如果你不想要了,随时可以取消订阅,那么下次出版社就不会派发报纸给你了,就这么简单。...2012-11-06 12:01:26 · 132 阅读 · 0 评论 -
命令模式--(1)基本认识
什么是命令模式: 将请求(命令)封装为对象,实现将“发出请求的对象”与“接收和执行这些请求的对象”分隔开来 命令模式中有几个关键的概念: 客户:发起请求的对象,开关,或者你(因为开关是由你来控制的)命令:具体的一个命令,比如开灯命令,关灯命令执行者:接收和执行请求的对象,比如电灯,是开灯关灯命令的接收者和执行者调用者:通过这个对象来实现客户(开关或你)和执...2012-11-09 01:41:17 · 159 阅读 · 0 评论 -
模板方法模式
什么是模板方法模式: 在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中去实现,模板方法可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 模板方法把不变的行为搬到了父类中,去除了子类中重复的代码,实现了代码的复用。有的时候我们会遇到一系列步骤构成的过程需要执行,这个过程从高层次上看是相同的,但是有些步骤的实现可能不同,这个时候就应该考虑模板方法模式了。 比...2012-11-10 13:54:32 · 110 阅读 · 0 评论 -
组合模式
在《大话设计模式一书中》组合模式的定义为:“将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。”即:让View和ViewGroup使用起来具有一致性,用户使用的时候不用去考虑他们之间的不同性。 在Android中这点在View和ViewGroup中体现的很清晰。下面是类层次图 将对象View和V...原创 2012-09-17 09:45:24 · 127 阅读 · 0 评论