设计模式
海波booy
爱学习、爱生活、爱工作
展开
-
java设计模式:观察者模式
观察者模式原理:观察者模式定义:简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象工这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。观察者模式实现Subject(被观察的对象接口)规定ConcreteSubject的统一接口;每个Subject可以有多个Observer;ConcreteSubject(具体被观察对象)维护对所有具体观察者的引用的列表;状态发生变化时会发送通知给所有注册的观察者。Ob原创 2020-05-18 13:43:16 · 144 阅读 · 0 评论 -
java设计模式:动态代理模式
所谓动态代理,即通过代理类: Proxy的代理, 接口和实现类之间可以不直接发生联系,而可以在运行期( Runtime)实现动态关联。Ijava动态代理主要是使用java.lang.reflect包中的两个类。InvocationHandler类public Object invoke(Object obj,Method method,Object[] obs)其中第一个参数obj指的是代理类,method是被代理的方法,obs是指被代理的方法的参数组。此方法由代理类来实现。Proxy类prot原创 2020-05-15 21:04:57 · 144 阅读 · 0 评论 -
java设计模式:迭代器设计模式
提供一个方法按顺序遍历一个集合内的元素,而又不需要暴露该对象的内部表示。应用场景1、访问一个聚合的对象,而不需要暴露对象的内部表示2、支持对聚合对象的多种遍历3、对遍历不同的对象,提供统一的接口。迭代器模式的角色构成1、迭代器角色(Iterator) : 定义遍历元素所需要的方法,一般来说会有这么三个方法:取得下一个元素的方法next(),判断是否遍历结束的方法hasNext(),移出当前对象的方法remove(),2、具体迭代器角色(Concrete Iterator) : 实现迭代器接口原创 2020-05-13 11:16:35 · 124 阅读 · 0 评论 -
java设计模式:装饰者设计模式
装饰者模式(Decorator)意图: 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。该模式以对客户端透明的方式扩展对象的功能。适用环境在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。处理那些可以撤销的职责。当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。装饰模式中的角色:抽象构件(Com原创 2020-05-10 21:22:40 · 150 阅读 · 0 评论 -
java设计模式:适配器设计模式
适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。OO设计原则:1、面向接口编程(面向抽象编程)2、封装变化3、多用组合,少用继承4、对修改关闭,对扩展开放实例代码:1、电源A对应电源A接口,如果想要电源B也用电源A接口则不适配,需要一个适配器转接头将电源B适应转接头,转接头适配电源A则可通过...原创 2020-05-06 11:23:00 · 68 阅读 · 0 评论 -
java设计模式:静态代理设计模式
代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。代理模式说白了就是“真实对象”的代表,在访问对象时引入一定程度的间接性,因为这种间接性可以附加多种用途。实例代码:public class ProxyTest{ public static void main(String[] args){ Action userAction = new UserAction();...原创 2020-05-06 10:16:51 · 74 阅读 · 0 评论 -
java设计模式:简单工厂设计模式
简单工厂模式简单工厂模式是有一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式代码实例:public class FactoryTest{ public static void main(String[] args){ //使用者和被使用者两者之间,耦合,产生了依赖,当被使用者改变时,会影响使用者 //使用工厂模式来降低两者之间的依赖 Pro...原创 2020-05-06 10:14:22 · 82 阅读 · 0 评论 -
java设计模式:策略设计模式(接口应用)
策略模式(Strategy Pattern):定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。OO设计原则:1、面向接口编程(面向抽象编程)2、封装变化3、多用组合,少用继承实例代码:public class StrategyPatternTest{ public static void main(String[] args...原创 2020-05-06 10:07:05 · 110 阅读 · 0 评论 -
java设计模式:模板方法设计模式(抽象类应用)
模板方法模式(Template Method):定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。实例代码:public class TemplateMethodTest{ public static void main(String[] args){ UserManager um = new ...原创 2020-05-06 10:02:53 · 166 阅读 · 0 评论 -
java设计模式:单例设计模式
**单例设计模式:**保证一个类仅有一个实例,并提供一个访问它的全局访问点。1、构造方法私有化2、声明一个本类对象3、给外部提供一个静态方法获取对象实例两种实现方式:1、饿汉式:在第一次调用getInstance方法时,对象被创建,到程序结束后释放2、懒汉式:在类被加载后,对象被创建,到程序结束后释放基础代码实现如下:public class Singleton{ public ...原创 2020-05-04 14:33:02 · 81 阅读 · 0 评论