java常见的设计模式

作者: 蛋皮皮652 | 来源:发表于2019-01-21 11:15 被阅读439次

    1.单例模式

    每个类只能创建一个实例对象

    Java Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。

    好处:

    第一、控制资源的使用,通过线程同步来控制资源的并发访问;

    第二、控制实例产生的数量,达到节约资源的目的。

    第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。

    应用场景:在线统计人数

    1 2 3

    synchronized 关键字,代表这个方法加锁,

    相当于不管哪一个线程A每次运行到这个方法时,

    都要检查有没有其它正在用这个方法的线程B(或者C D等),

    有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程A,

    没有的话,直接运行它包括两种用法:synchronized 方法和 synchronized 块。

    2.工厂模式

    优点:

    将创建实例的工作与使用实例的工作分开,使用者不必关心类对象如何创建,明确了职责。

    把初始化实例时的工作放到工厂里进行,使代码更容易维护。 更符合面向对象的原则,面向接口编程,而不是面向实现编程。

    缺点:

    由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。

    要新增产品类的时候,就要修改工厂类的代码,违反了开放封闭原则(对扩展的开放,对修改的关闭)。

    简单工厂模式由于使用了静态工厂方法,静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结构。

    发送接口 邮箱发送方法 短信发送方法 发送工厂类 发送实例

    3观察者模式

    简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监听一个主题对象。这样一来,当被观察者状态发生改变时,需要通知相应的观察者,使这些观察者对象能够自动更新。例如:GUI中的事件处理机制采用的就是观察者模式。

    被观察者接口 被观察者类 观察者接口 观察者类 观察者模式结果

    相关文章

      网友评论

        本文标题:java常见的设计模式

        本文链接:https://www.haomeiwen.com/subject/mvaqjqtx.html