设计模式

2017-04-10  本文已影响9人  Bottle丶Fish

一、设计模式简介及分类####

所谓模式,就是套路、固定的代码。对于设计模式,重要的是思维和思考方式的转变。

二、常用设计模式####

1、单例模式
保证一个类只有一个实例,并且提供一个范围该实例的全局访问点。配置文件类,连接池,application(共享),控制器对象,Bean对象等均采用该模式。考察的几个要点:线程安全、效率、延时加载。

主要形式

2、工厂模式
设计模式的灵魂就是分工,分工能够组织庞大的项目,类和对象越多的话,只有分工分的越细,整个项目才更容易扩展。而工厂模式就是实现创建者和使用者的分离。这里要提一下面向对象的三个设计原则。
a、OCP原则(开闭原则):一个软件的实体应当对扩展开放,对修改关闭。
b、DIP原则(依赖反转):要针对接口编程,不要针对实现编程。
c、LoD原则(迪米特原则):只与你直接的朋友通信,而避免和陌生人通信。

主要形式
在介绍之前,先举一个未使用工厂模式例子,以便说明工厂模式。

未使用工厂模式下,客户端调用子类的依赖关系(要知道所有细节) 简单工厂模式下,客户端调用子类的依赖关系(不需要知道下面的细节,但不满足OCP) 弥补简单工厂模式下未满足OCP原则的缺陷,但类冗余 存在多个接口的产品族
  1. synchronized是Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。
    一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
    二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
    三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。
    四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
    五、以上规则对其它对象锁同样适用。

上一篇 下一篇

猜你喜欢

热点阅读