- 博客(8)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 设计模式——代理模式
代理模式 一个类A,被代理类,有一个功能a要提供给其它的类使用,如类C,使用类。为了降低类A和类C的耦合度,要求类C不能直接访问类A。类A将自己的功能a委托给类B,代理类,而类C通过类B来使用类A的功能a。 类A和类B有共同的接口a,类B对接口a的实现可以调用类A对接口a的实现,同时可以附加自己额外的操作,以适应其它类的需求。多个类对类A的a功能有着不同的需求,而这种需求的不同无需去改变类A,只
2016-05-05 11:42:12 216
原创 设计模式——装饰者模式
装饰者模式 通过对象组合的方式,为一个现有的类(被装饰者)添加一些新的功能。根据合成复用原则,避免使用继承的方式来扩展类。类继承会增加类的复杂度,且必须在编译之前确定要扩展的功能,静态的。类似java io的包装流,一层层外包。//原始被装饰者接口 public interface Human { public void wearClothes(); } //原始被装饰者接口实现类 pub
2016-05-04 17:57:25 214
原创 设计模式——适配器模式
适配器模式 一个类提供了一个接口的实现,而另一个类要求通过另一个接口来使用该实现。两个接口不同肯定不能一起工作。根据开闭原则,接口确定好后是不能修改的,此时需要通过适配器来完成接口的转换。在原有的实现类或接口外包一层后,变为使用者可以使用的类或接口。 类适配器模式,通过继承实现。 //原有的接口 public interface Old { public void oldMethod
2016-05-02 20:21:37 173
原创 原型模式
重写类的clone方法,仅在第一次创建该类的实例时使用构造方法创建,之后该类实例的创建都是直接调用第一次创建实例的clone方法生成。clone方法是java的本地方法,其内容的拷贝直接跳过构造方法在内存中完成,效率比new高很多。对于需要被重复创建的复杂对象,使用原型模式会明显提高效率。 ``` public class ProtoType implements Cloneable { public sta
2016-05-02 11:27:45 257
原创 建造者模式
一个复杂的对象有很多的属性,那么在构造这个对象的时候,对其各个属性的初始化值就存在很多的可能。不同的初始化值,实际创建出的是符合某种需求的不同的实例。通过一个构造器类来对这些属性进行专门的初始化,从而构造出符合我们要求的实例。Android中的Dialog类的实例的创建方式,使用的就是建造者模式。 ``` // 抽象类 public abstract class Dialog { // 包含复杂对象的全部属性
2016-05-02 10:39:16 306
原创 单例模式
``` // 单线程下懒汉式单例 // 该方法在多线程下可能会创建出多个实例,由此仅适用于单线程环境 public class Singleton { private static Singleton single = null; // 私有构造方法,仅能内部自己使用,外界无法访问,由此外界无法创建该类的实例 private Singleton() {} // 对外提供的公共接口,返回类的唯一实例 pub
2016-05-01 11:58:12 205
原创 抽象工厂模式
``` // 抽象工厂模式 // 有多个抽象子产品接口,每个抽象子产品接口都可以扩展多个具体子产品类的实现 // 一个抽象工厂接口,可以扩展多个具体工厂类的实现,且每个具体工厂类能够创建多个具体子产品类的实例 // 若一个产品由若干子产品组成,那一个具体工厂要形成可使用的具体产品,就必须通过生产多个具体子产品来实现 // 抽象子产品接口 public interface Engine {} public inter
2016-05-01 10:58:40 312
原创 工厂方法模式
``` // 简单工厂模式 // 一个抽象产品接口,可扩展多个具体产品类的实现 // 一个具体工厂类,可创建多个具体产品类的实例 // 抽象产品接口,为标准,不可变,对修改关闭 public interface BMW {} // 具体产品类,实现抽象产品接口,对扩展开放 pbulic class BMW320 implements BMW {} public class BMW523 implements BMW
2016-05-01 10:40:33 284
CPrintDialog WinCE不能用怎么办
2014-10-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人