b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

解释器模式举例_lua解释器交互模式_动态编译与解释器模式

电脑杂谈  发布时间:2017-02-22 17:29:35  来源:网络整理

文章比较长,读者可以通过顶端的目录选择要了解的模式,然后通过文章右边的按钮快速返回顶部重新选择一个新的模式浏览

博主精心准备了大量的示例代码。文章尽量提供与编程相关的例子,而不是像多数其他介绍的文章一样,提供一些感觉挺滑稽的例子(那样的例子可能看完觉得写得很好,然而还是不会用...)。

本文耗费了作者大量时间,还请亲们给个赞O(∩_∩)O~

也可以通过CTRLF并输入要了解的模式并跳到对应位置。

文章中的示例源码在github上:https://github.com/anxpp/JavaDesignPattern

设计模式介绍及Java描述

概述

设计模式是针对某一类问题的最优解决方案,是从许多优秀的软件系统中总结出的。

Java中设计模式(java design patterns)通常有23种。

模式可以分成3类:创建型、行为型和结构型。

创建型模式

创建型模式涉及对象的实例化,特点是不让用户代码依赖于对象的创建或排列方式,避免用户直接使用new创建对象。

创建型模式有以下5个:

工厂方法模式、抽象工厂方法模式、模式、原型模式和单例模式。

行为型模式

行为型模式涉及怎样合理的设计对象之间的交互通信,以及怎样合理为对象分配职责,让设计富有弹性,易维护,易复用。

行为型模式有以下11个:

责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。

结构型模式

结构型模式涉及如何组合类和对象以形成更大的结构,和类有关的结构型模式涉及如何合理使用继承机制;和对象有关的结构型模式涉及如何合理的使用对象组合机制。

结构型模式有以下7个:

适配器模式、组合模式、代理模式、享元模式、外观模式、桥接模式和装饰模式。

模式中涉及的重要角色,会在描述中(加粗字体)介绍出来。下面就逐一介绍。

1、单例模式(Singleton Pattern)

Ensure a class only has one instance,and provide a global point of access to it.

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

何时使用

当系统需要某个类只有一个实例的时候

优点

单例模式的类唯一实例由其本身控制,可以很好的控制用户何时访问它。

单例模式概念很简单,而且也比较常用。

在使用这个模式的时候,我们要考虑是否会在多线程中使用,如果不会应用于多线程,那写法就足够简单:

public class SimpleSingleton {    private static SimpleSingleton instance;    private SimpleSingleton(){}    public static SimpleSingleton getIntance(){        if(instance == null)            instance = new SimpleSingleton();        return instance;    }}

上例就是一个简单的单例模式实现,使用了懒加载模式。但是多线程中可能会创建多个实例。下面就介绍多线程中的使用。

如果直接将上面例子应用到多线程中,可以直接把getInstance()设置为同步的(synchronized),但是并不高效,任一之后,只能有一个线程可以调用这个方法,其余的会排队等待。

所以整个方法做同步不是优解,那就只同步代码块就好了。这就引出了双重检验锁,即在同步块外检查一次null,然后再在同步块内检查一次。但是最终这种方式也是会有问题的,使用静态内部类是一种比较好的方式。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33893-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...