设计模式---观察者模式&&工厂模式

观察者模式:
含义:

观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者模式中,主体是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接收通知。

也就是当被观察者状态变化时,通知所有观察者,这种依赖方式具有双向性,在QQ邮箱中的邮件订阅和RSS订阅,当我们浏览一些博客时,经常会看到RSS图标,意思就是,当你订阅了该文章,如果后续有更新,会及时通知你。这种现象即是典型的观察者模式。再举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。

优点:

观察者模式(Observer)完美的将观察者和被观察的对象分离开。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。

适用场景:

观察者模式不仅被广泛应用于软件界面元素之间的交互,在业务对象之间的交互、权限管理等方面也有广泛的应用。



工厂模式:简单工厂模式->工厂方法模式->抽象工厂模式

简单工厂模式:

简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。

例如:有一家生产处理核的厂家,它只有一个工厂,能够生产两种型号的处理器核。客户需要什么样的处理器,一定要显示地告诉生产工厂。

缺点:就是当需要增加新的处理器核类型式,需要修改工厂类,违反了开放封闭原则:可扩展,但不可修改。

工厂方法模式:

是指定义一个用于创建对象的接口,让子类决定实例化哪个类。将创建过程延迟到子类进行。

例如:生产处理器的厂家,决定再开设一个工厂专门用来生产B型号的单核,一个工厂用来生产A型号的单核。这时客户要A型号的核,就找A工厂要;B型号的,找B工厂要;
  
缺点:每增加一个新产品就需要,增加一个对象的工厂。

抽象工厂模式:

是指定义一个创建一些列相关或相互依赖的对象接口,而无需指定它们具体的类。

例如:这家公司的技术不断发展,现在可以生产多核的处理器,具体方法:还是开设两个工厂分别用来生产A,B两种型号的处理器。

具体实现代码可以参考:https://www.cnblogs.com/zhangzeze/p/9392598.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值