![](https://img-blog.csdnimg.cn/3c58b8c9e1d143e486f31fac8452c71e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java设计模式
简单理解设计模式
减肥的大坤坤
搬砖的码畜一枚
展开
-
抽象工厂设计模式
抽象工厂模式用于1对多场景,一个具体工厂对应多个具体产品。原创 2022-09-13 19:59:43 · 217 阅读 · 0 评论 -
解释器模式
简单理解 用定义的语法规则,来规范限制传入的参数 例子:定义日期格式为yyyy-MM-dd,我传入的参数为2022-04-26 8:30,那么经过格式化之后,结果为2022-04-26 优点 扩展性好 容易实现 缺点 执行效率低 会引起类膨胀 可应用的场景比较少 终结符和非终结符的区别 终结符:代表不可以再拆分 非终结符:代表可以再拆分 结构 抽象表达式:约定解释器的操作 终结符表达式 非终结符表达式 环境类 哪些场景需要应用 当语法(集合)的文法(对象)简单,且执行效率不是关键 当问题重原创 2022-04-26 11:48:53 · 1253 阅读 · 0 评论 -
备忘录模式
定义 在不破坏封装性的条件下,在该对象之外保存这个对象,便于以后改变对象的值后,可以使该对象恢复到之前的样子。该模式又称快照模式。 结构 发起人:当前时刻的状态,提供创建备忘录和恢复备忘录的操作 备忘录:记录发起人当前时刻的状态 管理人:对备忘录进行保存和获取的操作,但是不能对其有编辑的操作 结构图 优点 提供了方便的恢复机制 实现了内部封装,除了发起人能够访问,其它人都不能访问 符合单一责任原则,将当前状态,备份状态,管理状态三个功能区分开来 参考文章 C语言中文网 Java设计模式 备忘录模式原创 2022-04-22 14:33:35 · 1008 阅读 · 0 评论 -
访问者模式
简单例子 一个景点,每个游客对这个景点的评价都不一样 定义 将数据结构(集合)中每个元素(对象)的操作逻辑分离出来,使在不改变数据结构的前提下,为每个元素添加访问方式(操作逻辑) 优点 拓展性好,可以在不影响数据结构的情况下为元素添加操作逻辑 复用性好,我们对元素执行不同的操作时,数据结构不用变,变得只是访问者 灵活性好,我们可以在改变操作逻辑时,不影响数据结构 单一职责原则,每个访问者都有自己的操作逻辑,使每个访问者都只做自己的事情 缺点 数据结构中,每增加一个元素,访问者都要相对应的增加操作逻辑,原创 2022-04-21 10:24:03 · 105 阅读 · 0 评论 -
迭代器模式
定义 用一个对象,来顺序访问聚合对象中的数据,而不暴露聚合对象的内部表示 结构 抽象聚合类 具体聚合类 抽象迭代类 具体迭代类 优点 方便拓展,不需要修改原有代码 封装性好,为不同的聚合类提供了统一的接口 缺点 导致类的个数增加,增加了系统的复杂性 结构图 参考文章 C语言中文网 - Java设计模式 迭代器模式 ...原创 2022-04-20 10:54:31 · 824 阅读 · 0 评论