1.单例模式
每个类只能创建一个实例对象
Java Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
好处:
第一、控制资源的使用,通过线程同步来控制资源的并发访问;
第二、控制实例产生的数量,达到节约资源的目的。
第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。
应用场景:在线统计人数
1 2 3synchronized 关键字,代表这个方法加锁,
相当于不管哪一个线程A每次运行到这个方法时,
都要检查有没有其它正在用这个方法的线程B(或者C D等),
有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程A,
没有的话,直接运行它包括两种用法:synchronized 方法和 synchronized 块。
2.工厂模式
优点:
将创建实例的工作与使用实例的工作分开,使用者不必关心类对象如何创建,明确了职责。
把初始化实例时的工作放到工厂里进行,使代码更容易维护。 更符合面向对象的原则,面向接口编程,而不是面向实现编程。
缺点:
由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。
要新增产品类的时候,就要修改工厂类的代码,违反了开放封闭原则(对扩展的开放,对修改的关闭)。
简单工厂模式由于使用了静态工厂方法,静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结构。
发送接口 邮箱发送方法 短信发送方法 发送工厂类 发送实例3观察者模式
简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监听一个主题对象。这样一来,当被观察者状态发生改变时,需要通知相应的观察者,使这些观察者对象能够自动更新。例如:GUI中的事件处理机制采用的就是观察者模式。
被观察者接口 被观察者类 观察者接口 观察者类 观察者模式结果
网友评论