观察者模式
大白话:比如说现在的军事,有一个侦察兵在执行日常任务每天都需要上报,本来前几天任务的目标都是没有什么变化的,突然有一天目标成长了或者目标死亡了侦察兵就必须第一时间去通知上级和其他的相关部门,达到事件的快速更新。
优点: 1、观察者和被观察者是抽象耦合的。 2、建立一套触发机制。
缺点: 1、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。 2、如果在观察者和观察目标之间有循环依赖的话,观察目标会触发它们之间进行循环调用,可能导致系统崩溃。 3、观察者模式没有相应的机制让观察者知道所观察的目标对象是怎么发生变化的,而仅仅只是知道观察目标发生了变化。
工厂模式
大白话:您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。
优点: 1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口。
**缺点:**每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。这并不是什么好事。
单例模式
大白话:这个世界只存在一个你自己。也就是说整个类就只有一个对象
优点:
1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。
2、避免对资源的多重占用(比如写文件操作)。
**缺点:**没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。
本文详细介绍了设计模式中的观察者、工厂和单例模式。观察者模式用于实现事件驱动的快速更新,但可能带来性能问题和循环依赖的风险。工厂模式提供了一种抽象的产品创建方式,提高了扩展性,但会增加系统复杂度。单例模式确保类只有一个实例,减少了内存开销,但在接口和继承方面存在限制。

被折叠的 条评论
为什么被折叠?



