01 2012 档案

摘要:代理模式为另一个对象提供了一个替身或占位符以控制对这个对象的访问。 代理模式的应用: 远程代理,也就是为一个对象在不同的地址空间提供局部代理。这样可以隐藏一个对象存在于不同地址空间的事实 WebServer在.net中的应用就是这样的一个例子 虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真对象。 这样可以达到性能的最优化,比如说你打开一个很大的HTML网页时,里面... 阅读全文
posted @ 2012-01-16 21:23 zhxiang 阅读(207) 评论(0) 推荐(0)
摘要:状态模式允许对象在内部状态改变时改变他的行为,对象看起来好像修改了他的类。 要点: 1. 策略模式和状态模式是双胞胎,它们有相同的类图,但是它们的意图不同。策略模式是围绕可以互换的算法来成功创建业务的,然而状态模式是通过改变对象内部的状态来帮助对象控制自己的行为. 2. Context将与状态相关的操作委托给当前的Concrete State对象处理。 3. Context可将自身作为一个参数传递... 阅读全文
posted @ 2012-01-16 21:05 zhxiang 阅读(209) 评论(0) 推荐(0)
摘要:迭代器模式提供了一种方法顺序访问一个聚合对象中的各个元素,而不暴露其内部的表示。 迭代模式与组合模式要点: 1.迭代器允许访问聚合的元素,而不需要暴露它的内部结构 2.迭代器将遍历聚合的工作封装进一个对象中 3.当使用迭代器的时候,我们一来聚合提供遍历 4.迭代器提供了一个通用的接口,让我们遍历聚合的项时,就可以使用多态机制 5.我们应该努力让一个类只分配一个责任 6.组合模式提... 阅读全文
posted @ 2012-01-16 20:38 zhxiang 阅读(797) 评论(0) 推荐(0)
摘要:模板方法模式在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 特点: 1. 模板方法中的非final方法(默认实现或不做事的方法)称为“钩子”。 2. 钩子可以简化子类的实现。 3. 钩子可以让子类能够有机会对模板方法中某些即将发生的(或刚刚发生的)步骤做出反应。 4. primitiveMethod的命名最好加上... 阅读全文
posted @ 2012-01-15 17:16 zhxiang 阅读(204) 评论(0) 推荐(0)
摘要:适配器模式 将一个类的接口,转换成客户期望的另一个接口,适配器让原来接口不兼容的类可以合作无间。 (外观模式 提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。) (适配器将一个对象包装起来以改变其接口;外观将一群对象“包装”起来以简化其接口;装饰者将一个对象包装起来以增加新的行为和责任)适配器模式:适配器模式有两种形式:对象适配器和类适配器。类适配器需要多重继承(java不支持多重继承。。),类适配器继承被适配者和目标类。对象适配器利用组合的方式将请求传送给被适配者。系统中有一个具有某个特定功能的类Adaptee,一个客户类Client――他. 阅读全文
posted @ 2012-01-14 21:26 zhxiang 阅读(1668) 评论(0) 推荐(1)
摘要:观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,他的所有依赖者都会受到通知并自动更新。特点:1.观察者模式定义了对象之间一对多的关系。2.主题(也就是可观察者)用一个共同的接口来更新观察者。3.观察者和可观察者用松耦合的方式结合,可观察者不知道观察者的细节,只知道观察者实现了观察者接口4.有多个观察者时,不可以依赖特点的通知次序。定义观察者模式:类图观察者模式的组成1.抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类或接口来实现2.抽象观察者角色:所有潜在的观察者都必. 阅读全文
posted @ 2012-01-12 18:48 zhxiang 阅读(2236) 评论(1) 推荐(2)
摘要:装饰者模式动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。特点:①装饰者和被装饰着具有相同的超类型;所以在任何需要原始对象(被包装)的场合,都可以用装饰过的对象来代替他;②可以有一个或者多个装饰者包装一个对象;③装饰者可以在所委托被装饰者的行为之前或者之后加上自己的行为,以达到特定的目的;即对象可以在任何时候被装饰,所以可以在运行时动态地、不限量第用你喜欢的装饰者来装饰对象。优缺点 优点:1)提供比继承更多的灵活性 2)使用不同的装饰组合可以创造出不同行为的组合 3)需要的类的数目减少 缺点:1)灵活性带来比较大的出错性 2)产生更多的对象,给查错带来困难 下面. 阅读全文
posted @ 2012-01-06 21:49 zhxiang 阅读(1216) 评论(1) 推荐(1)
摘要:命令模式属于行为模式。命令模式将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。优点: ① 命令模式把方法调用封装起来,命令模式可将“动作请求者”从“动作执行者”对象中解耦,请求者发送请求,执行者接收请求执行相应动作,因为命令模式解耦,请求者无需知道执行者任何接口。 ② 命令模式可以支持撤销,做法是实现一个undo()方法来回到execute()方法被执行前的状态。 不少命令模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作. 将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这. 阅读全文
posted @ 2012-01-05 20:39 zhxiang 阅读(399) 评论(0) 推荐(0)
摘要:单例模式确保类只有一个实例,并提供一个全局访问点。单例模式平时使用的机会不多,通常用于数据库连接或线程池。全局变量和单例模式比较 在java中,全局变量基本上是对对象的静态引用,可以提供全局访问。但有两个缺点:①不能确保只有一个实例,他会用许多全局变量指向许多小对象来污染命名空间;②急切实例化,在程序开始就创建好对象 单例模式:① 确保类只有一个实例 ;②单件可以延迟实例化。利用单件模式可以在需要是创建对象。③没有公开的构造器,他的构造器通常声明为私有的。④单例类保持了一个对唯一的单例实例的静态引用,并且会从静态getInstance()方法中返回对那个实例的引用。经典的单例模式实现 1... 阅读全文
posted @ 2012-01-04 20:43 zhxiang 阅读(610) 评论(0) 推荐(2)