您的位置:首页 > 编程语言 > Java开发

java常用设计模式

2015-07-25 10:18 447 查看
java常用的设计模式

1,单例模式。

a,有些对象我们只需要一个:线程池、缓存、硬件设备等,如果多个实例会有造成冲突,结果的不一致性问题

b,可以使用静态变量方式来实现或者全局变量。

c,确保一个类最多只有一个实例,并且保证有一个全局的访问点.

d,声明一个私有的构造函数,提供一个静态的方法来创建私有对象.

e,单例模式在多线程中的优化.

<1>getInstance中添加同步锁,因为同步锁很消耗资源,在多次调用getInstace中,不建议使用

<2>使用急切创建实例解决方案,直接在static中new出来.

<3>双重检查加锁解决方案.

public volatile static ChocolateFactory instance=null;

public static ChocolateFactory getInstance(){

if(instance==null){

synchroized(ChocolateFactory.class){

if(instance==null){

instance=new ChocolateFactory();

}

}

}

return instance;

}

2,装饰者模式.

a,动态的将新功能附加到对象上,在对象功能扩展方面,它比继承更有弹性.

b,java的io结构:inputstream

3,观察者模式:对象之间多对一依赖的一种设计方案,被依赖的对象为subject,依赖的对象为observer,subject通知observer变化.

a,被观察者(subject)与观察者(observer);

b,被观察者登记注册、移除和通知,观察者接收输入.

3,外观模式.

a,提供一个统一的接口,来访问子系统中一群功能相关接口,它定义了一个高层接口,让子系统更容易使用.

b,最小知识原则:尽量减少对象之前的交互,只留几个密友,项目设计中就是不要让太多的类耦合在一起.

c,对象方法调用范围:对象本身,作为参数传进来的对象,此方法创建和实例化的对象,对象的组件.

4,工厂模式.

a,扩展的开放,修改的关闭.

b,定义了一个创建对象的类,由这个类来封装实例化对象的行为.

c,定义了一个创建对象的抽象方法,由子类决定要实例化类,工厂方法模式将对象的实例化推迟到子类.

d,抽象工厂模式:定义了一个接口用于创建相关或有依赖关系的对象族,无需明确指定具体类.

e,依赖抽象原则:

<1>变量不要持有具体类的引用.

<2>不要让类继承自具体类,要继承自抽象类接口.

<3>不要覆盖基类中已实现的方法.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: