Java设计模式
子夜(HenryGe)
爱编程,爱生活,无惧风雨,创造未来。
展开
-
Java设计模式-行为型-代理模式
什么是代理模式 从代理这两个字就大概可以猜到这个模式应该是做什么用的。代理模式是为被访问的对象提供一个代理,这样的话,对象的访问者访问就是这个代理对象。下面的UML图可以比较清晰的表示这样的关系。 (图片来源,wikipedia) 从图中可以看出,Proxy类和RealSubject类都实现了接口Subject。RealSubject.DoAction()方法才是访问者真正要调用...原创 2014-07-31 10:23:13 · 389 阅读 · 0 评论 -
Java设计模式-结构型-适配器模式
什么是适配器模式 Gang of Four 说过,将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 这句话中可以知道,适配器是为方便多个接口或者类协同的工作。客户所要使用的也是他们协作的结果。 上面的UML图采集与wiki。 图中可以看到Adaptor类实现了多个接口,每个结构有不同的方法,它的方...原创 2014-08-28 16:09:12 · 426 阅读 · 0 评论 -
Java设计模式-结构型-修饰模式
什么是修饰模式 修饰模式是面向对象模式的一种,该模式可以动态向类中添加新的功能。动态指的是在程序运行时候,而我们常用的扩展功能的方法是写一个子类继承父类,这样的继承是静态的,因为这样的扩展方法是程序编译时候就体现出来了。 在上图中可以看到,接口类Component有2个实现,ConcreteComponent类和Decorator类,Decorator类和它的2个子类对Conc...原创 2014-08-11 14:17:37 · 2416 阅读 · 0 评论 -
Java设计模式-行为型-命令模式
在很多程序员的开发过程可能都不知不觉中用到了这种模式,比如在使用对象的多个方法时候,有methodA,methodB,methodC三个方法可供使用,方法使用者对三个方法是使用是随机组合的。代码如下: public class RemoteControl { public void action1() { Plane plane = new Plane(); ...原创 2019-09-05 11:00:06 · 140 阅读 · 0 评论 -
Java设计模式-创建型-抽象工厂模式
什么是抽象工厂模式 抽象工厂模式是工厂模式的一种抽象形态,通常将工厂类定义为abstract,并且在工厂的方法中,所返回的对象也是抽象的。这个返回的对象往往就是客户所需要的。 抽象工厂模式的作用 抽象工厂模式的主要作用是可以将一系列的对象系统的抽象,并将得到的抽象对象通过工厂模式进行分类。是用户使用对象时候可以更系统和清晰。 也就是说我们所要使用的对象就是抽象工厂模式生产出的产品,并...原创 2014-10-29 16:48:40 · 303 阅读 · 0 评论 -
Java设计模式-结构型-享元模式
在工厂模式的代码中,我们不停的生成的对象,每个对象都是全新的,并在占用了部分的内存,而往往很多的对象内容都是相同的,也就是说可以共用的。享元模式也正是为了解决这种资源上的浪费而提出来的。 那么怎么样才能做到共享细粒度的对象呢?参考GoF提供的图片: 其中我觉得最关键的就是享元工厂角色中HashMap,他保存了每个实例化后的对象并使用key-value的形式保存起来。当遇到相同的key...原创 2019-10-10 10:59:14 · 183 阅读 · 0 评论