摘要: ## 引言 **命令模式**是一种行为型设计模式,它将请求封装成一个对象,从而允许你将不同的请求对客户端参数化,将请求排队或记录请求日志,以及支持可撤销的操作。 在命令模式中,有四个主要角色: - **接收者(Receiver)**:接收者是实际执行操作的对象。它定义了如何执行与请求相关的操作。 - 阅读全文
posted @ 2023-07-12 08:19 NiueryDiary 阅读(11) 评论(0) 推荐(0) 编辑
摘要: ## 引言 **责任链模式**是一种行为型设计模式,它通过一条由多个处理器组成的链来处理请求,每个处理器都有机会处理请求,如果一个处理器不能处理该请求,它会将请求传递给下一个处理器,直到请求被处理为止。 在实际应用中,责任链模式常用于处理请求的分发、事件处理等场景,它的优点在于可以动态地添加、删除处 阅读全文
posted @ 2023-07-12 08:19 NiueryDiary 阅读(60) 评论(0) 推荐(0) 编辑
摘要: ## 引言 **策略模式**是一种行为设计模式,它允许在运行时选择算法的行为。该模式定义了一系列算法,将它们封装成独立的类,并使它们可以互相替换。这使得算法可以独立于使用它们的客户端而变化。 在策略模式中,有三个主要的角色: - **环境(Context)**:它是使用策略的对象,它维护一个对策略对 阅读全文
posted @ 2023-07-12 08:18 NiueryDiary 阅读(19) 评论(0) 推荐(0) 编辑
摘要: ## 引言 **迭代器模式**是一种行为型设计模式,它允许按照特定顺序遍历集合对象的元素,同时不暴露集合的内部结构。这样做可以让客户端代码不依赖于集合对象的具体实现,从而提高代码的灵活性和可重用性。 在迭代器模式中,聚合对象将其遍历的职责委托给迭代器对象,而不是在聚合对象中实现遍历。 迭代器模式的优 阅读全文
posted @ 2023-07-12 08:18 NiueryDiary 阅读(7) 评论(0) 推荐(0) 编辑
摘要: ## 引言 **享元模式**是一种结构型设计模式,它允许你在消耗少量内存的情况下支持大量对象。如果你需要生成大量细粒度的类实例来表示数据,而这些实例除了几个参数外基本上都是相同的,那么你可以使用享元模式来 避免大量相似类的开销。 在享元模式中,有两种状态:**内部状态**和**外部状态**。内部状态 阅读全文
posted @ 2023-07-12 08:17 NiueryDiary 阅读(21) 评论(0) 推荐(0) 编辑
摘要: ## 引言 最近做一个配置的功能,需求是该配置项跟另一个整形配置项关联,具有一定的函数关系,例如有一个配置项是值为 `N` ,则另一配置 `F` 项满足函数关系$F=2/(N+1)$。这个函数关系是客户手动输入,只需要简单的四则运算,所以我们要做的就是判断四则运算表达式是否有效,且给定 `N` 的值 阅读全文
posted @ 2023-07-12 08:00 NiueryDiary 阅读(700) 评论(2) 推荐(6) 编辑
摘要: ## 引言 **组合模式**是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性,因为它们都具有相同的接口。 组合模式由三个要素组成: 1. **抽象组件(Component)**:它定义了叶子节点和组合节点的公共接口 阅读全文
posted @ 2023-07-11 14:04 NiueryDiary 阅读(9) 评论(0) 推荐(0) 编辑
摘要: ## 引言 **桥接模式**是一种结构型设计模式,它可以将一个大类或一组相关的类拆分成抽象和实现两个独立的层次结构,从而可以在两个层次结构中分别变化。桥接模式的核心思想是“尽可能将抽象部分和实现部分分离,使它们可以独立地变化”。这样可以使得系统更加灵活,易于扩展和维护。 在桥接模式中,有两个重要的角 阅读全文
posted @ 2023-07-11 13:07 NiueryDiary 阅读(12) 评论(0) 推荐(0) 编辑
摘要: ## 引言 **外观模式**是一种结构型设计模式,它为客户端提供了一个简单的接口,使得客户端能够更容易地使用复杂的子系统。外观模式通过隐藏子系统的复杂性,简化了客户端的调用过程,同时也降低了客户端与子系统的耦合度。 外观模式的核心思想是将系统的各个组件和子系统封装在一个单独的类中,称为外观类。外观类 阅读全文
posted @ 2023-07-11 12:10 NiueryDiary 阅读(12) 评论(0) 推荐(0) 编辑
摘要: ## 引言 **代理模式**是一种结构型设计模式,它允许您提供一个代理来控制对某个对象的访问。在某些情况下,直接访问对象可能会带来一些问题,比如安全问题、性能问题等。代理模式就是为了解决这些问题而设计的。 在代理模式中,有三个核心角色:**抽象主题(Subject)**、 **真实主题(Real S 阅读全文
posted @ 2023-07-11 11:31 NiueryDiary 阅读(15) 评论(0) 推荐(0) 编辑