![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
kangsg219
java程序员
展开
-
学习笔记之代理模式(1)
普通对象所需要完成的任务就是通过公共接口为外界提供自己所承诺的服务(也就是让别的类调用它的方法),然而,有时候,一个合法的对象会因为某种原因而无法完成自己的常规任务。这个时候就需要一个代理对象来替它完成任务。由此可见代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 ...2007-10-10 08:56:13 · 72 阅读 · 0 评论 -
学习笔记之观察者模式
观察者(observer)模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 observer模式中有两个关键要素,一是Observer,一是Subject, Subject就是被观察者,它一般是事件的来源, Observer是观察者,它一般是事件发生的时候应该进行相应的操作的对象。 [code] package org.kan...2007-10-19 16:09:15 · 55 阅读 · 0 评论 -
学习笔记之策略模式
策略(Strategy)模式:定义了算法族,分别封装起来,让它们之间可以互相替换, 此模式让算法的变化独立于使用算法的客户。属于设计模式中对象行为型模式。 下面看代码: [b]抽象类Duck.java[/b] [code] package org.kangsg219.abst; import org.kangsg219.intf.FlyBehavior; impo...2007-10-19 15:39:07 · 92 阅读 · 0 评论 -
学习笔记之工厂模式-抽象工厂
抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。包含以下角色: 抽象工厂(Abstract Factory)角色:担任这个角色的是工厂方法模式的核心,它是与应用系统商业逻辑无关的。 具体工厂(Concrete Factory)角色:这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关的。 抽象产品(A...2007-10-18 10:39:41 · 69 阅读 · 0 评论 -
学习笔记之工厂模式-工厂方法
工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。 在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不接触哪一...2007-10-18 10:34:49 · 93 阅读 · 0 评论 -
学习笔记之工厂模式-简单工厂
工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: • 简单工厂(Simple Factory)模式 • 工厂方法(Factory Method)模式 • 抽象工厂(Abstract Factory)模式 Simple Factory模式根据提供给它...2007-10-18 10:28:01 · 57 阅读 · 0 评论 -
学习笔记之单态模式
单态模式也称单例( Singleton)模式,主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。这样做的目的就是节省资源。 [code]public class Singleton { private Singleton(){} //在自己内部定义自己一个实例,是不是很奇怪? //注意这是private 只供内部调用 private static S...2007-10-18 10:07:47 · 80 阅读 · 0 评论 -
23种设计模式另类理解
[b]创建型模式[/b] 1、[b]FACTORY[/b]—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory [b]工厂模式[/b]:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是...2007-10-11 18:55:36 · 93 阅读 · 0 评论 -
学习笔记之反射机制
[b]Java反射机制具备的功能:[/b] 在运行时判断任意一个对象所属的类。 在运行时构造任意一个类的对象。 在运行时判断任意一个类所具有的成员变量和方法。 在运行时调用任意一个对象的方法 Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modi...2007-10-10 19:36:25 · 59 阅读 · 0 评论 -
学习笔记之代理模式(2)
在动态代理中动态代理类不再服务于特定的对象与接口,而是服务于他绑定的对象,绑定是动态的。而实际工作的类也不插入任何和业务无关的动作。要调用是,绑定他即可。 [b]接口类:IBuySome.java[/b] [code]package org.kangsg219.DynamicProxy; public interface IBuySome { public void buy(...2007-10-10 19:10:27 · 74 阅读 · 0 评论 -
学习笔记之装饰者模式
装饰者(Decorator)模式又名包装(Wrapper)模式,它动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 [code] package org.kangsg219.abst; //星巴兹咖啡抽象类 public abstract class Beverage { public String description="Unknown Be...2007-10-19 16:19:26 · 80 阅读 · 0 评论