java常用设计模式

来源:互联网 发布:全民奇迹翅膀进阶数据 编辑:程序博客网 时间:2024/06/08 00:29
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>不要覆盖基类中已实现的方法.
0 0
原创粉丝点击