java与模式?java开发中都用到了那些设计模式用在什么场合
一、java开发中都用到了那些设计模式用在什么场合
设计模式很多,但总的来讲分为4大类,creationalpatterns,通常是隐藏对象的new进程,通过专门的类来具现对象。
structuralpatterns,根据类的层次关系和接口来设计。
behavioralpatterns根据对象间的通讯来设计J2EEpatterns.重视于表现层设计每类都有很多种。JAVA战狼班
二、Java单例模式简单吗
Java单例说起来简单,很多初学者也学起来也认为很简单,但是深入思考一下,就会发现没那么简单。
单例要考虑到多线程并发访问的问题,就会变得复杂起来。如何保证线程安全?比较常见的方法就是使用DCL(DoubleCheckLock)单例。实现代码如下:
这里还要特别注意,INSTANCE前还需要加上volatile修饰符。为什么要加这个修饰符呢?这里就涉及到CPU底层的一些知识了。简单来说,CPU底层执行指令的时候会对不同的指令进行重排序,我们Java代码里的一行代码,在CPU底层可能是多条指令,如果发生了重排序,单例对象实例化过程中可能会把半初始化状态的对象返回,那么当前线程获取到的实例与其他线程获取的完全初始化的对象就不一样了。volatile修饰符,可以防止CPU底层对这一行代码的相关指令进行重排序,直到对象完全初始化,保证多个线程访问单例返回的是同一个对象。
所以,看似简单的问题,其实也不简单。
三、java代理模式的好处
在JAVA中,代理模式是一种设计模式,它提供了对目标对象的另外的一种防卫方式,就是说通过代理对象访问目标对象。这么做的好处呢,就是说他可以在目标对象实现的基础上,增强额外的功能操作扩展目标对象的功能,。
其实呢,它涉及到了编程中的一个思想,就是说不要随意去修改别人已经写好的代码或者方法,如果需要修改,那么就可以通过代理的方式来扩展这种方法。