生成器模式
用法:当要创建一个具有复杂功能的对象时,我们可以使用一个简单对象来创建。它从小而简单的对象逐步创建更大更复杂的对象。生成器模式是另一个创建模式。
举例:当创建一个窗口作为我们应用程序的主窗口时,我们需要创建一个菜单,一个工具栏,然后添加菜单和工具栏。对于我们要创建的每个窗口,我们需要创建一个空窗口,创建菜单,创建工具栏,将菜单和工具栏安装到窗口。我们可以使用构建器模式来隐藏如何创建窗口的实现。
代码举例:
1 | //Pizza属性类 |
观察者模式
观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅模式。在观察者模式中,发布者我们称之为被观察者,订阅者称之为观察者。
关于观察者模式有两种应用:
自定义
主要实现思路是,观察者和被观察者都定义成接口形式,
被观察者接口提供增删观察者的方法通知方法,在实现类中添加数据设置方法
观察者接口提供数据更新方法
观察者实现类注入被观察者接口,并绑定与该观察者的关系(被观察者添加该观察者)
在测试时,构造一个被观察者以及多个观察者对象,被观察者尝试设置数据,看观察者是否接收到信息。>
使用Java内置API
在Java
中,继承Observable
的类称为可被观察者,实现Observer
接口的类称为观察者。
有了以上的内置API
,我们不再需要自己写两种接口了。
这里,需要注意的是,观察者需要实现接口的update(Observable o, Object arg)
方法,其中第一个参数就是被观察者对象,而它依然是通过构造注入观察者类的。在该方法中,你可以读取到被观察者的数据,从而被观察者实现了”通知”。
以上两种方式具体代码实现可见:<https://blog.csdn.net/zhongxuebin_xq/article/details/81429625