备忘录模式(十八)

保存一个对象的某个状态,以便在适当的时候恢复对象意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。怎么这么感觉像MySQL怎么回溯到任意时间:每隔一段时间备份一次,回溯后日志文件也别忘了回溯到同步时间菜鸟案例:备忘录模式使用三个类 Memento、Originator
2023年06月09日 764次浏览

中介者模式(十七)

是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护怎么说呢,更像一个平台,像房屋中介,房东把房子放那,租房者去中介那看房子,关于租房者和房东之间的联系由中介来管理菜鸟案例:我们通过聊天室实例来演示中介者模式。实例中,多个用户可
2023年06月09日 551次浏览

迭代器模式(十六)

是 Java 和 .Net 编程环境中非常常用的设计模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示看到这个我想到了java的foreach,就是按顺序迭代集合和数组里的对象,不需要知道长度,从头到尾迭代菜鸟案例:我们将创建一个叙述导航方法的 Iterator 接口和一个返回迭代器的 C
2023年06月08日 560次浏览

解释器模式(十五)

提供了评估语言的语法或表达式的方式该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等,我想到了log4j,在用数据库的时候会输出自己写的SQL语句和返回结果菜鸟案例:我们将创建一个接口 Expression 和实现了 Expression 接口的实体类。定义作为上下文中主要解释
2023年06月08日 525次浏览

命令模式(十四)

以命令的形式包裹在对象中,并传给调用对象意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。菜鸟案例:我们首先创建作为命令的接口 Order,然后创建作为请求的 Stock 类。实体命令类 BuyStock 和 SellStock,实现了 Order 接口,将执行实际的命令处理
2023年06月08日 545次浏览

责任链模式(十三)

为请求创建了一个接收者对象的链,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。就想抛出错误
2023年06月08日 542次浏览

享元模式(十二)

主要用于减少创建对象的数量,以减少内存占用和提高性能尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象换句话说就是共享对象,在某些对象需要重复创建,且最终只需要得到单一结果的情况下使用菜鸟案例:我们将创建一个 Shape 接口和实现了 Shape 接口的实体类 Circle。下一步是定义工厂
2023年06月08日 517次浏览

外观模式(十一)

隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口有点像工厂模式,只需要知道用哪个方法能返回什么对象就行,不过还是有区别的,外观模式在你调用接口的时候你需要的对象都创建好了,例子:比如new一个电脑在 new 电脑的同时把 cpu、内存、硬盘都初始化好并且接好线。对外暴露方法(启动电脑,
2023年06月08日 545次浏览

装饰器模式(十)

允许向一个现有的对象添加新的功能,同时又不改变其结构用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。菜鸟案例:我们将创建一个 Shape 接口和实现了 Shape 接口的实体类。然后我们创建一个实现了 Shape 接口的抽象装饰类 ShapeDecorator,并把 Shape
2023年06月08日 512次浏览

组合模式(九)

又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。用来表示部分以及整体层次,创建了对象组的树形结构。通俗解释:就是在一个对象中包含其他对象,这些被包含的对象可能是终点对象(不再包含别的对象),也有可能是非终点对象(其内部还包含其他对象,或叫组对象),我们将对象称为节点,即一个根节点包含许多
2023年06月08日 435次浏览