摘要: 设计模式总结 现在关于24种设计模式都介绍完了,其中包括GOF提出的23种设计模式和简单工厂模式。每种模式都有一个案例,可能不是每个案例都是这么的贴切、真实,同时每个模式最后都尽量举出了框架中涉及到的代码进行解析,这对于理解每种设计模式还是很有帮助的,下面对这24种模式进行简单的总结。 创建型模式 阅读全文
posted @ 2021-01-19 19:35 Phoegel 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 访问者模式 案例 张三所在公司欲为某高校开发一套奖励审批系统,该系统可以实现教师奖励和学生奖励的审批(Award Check),如果教师发表论文数超过10篇或者学生论文超过2篇可以评选科研奖,如果教师教学反馈分大于等于90分或者学生平均成绩大于等于90分可以评选成绩优秀奖。该系统主要用于判断候选人集 阅读全文
posted @ 2021-01-14 19:33 Phoegel 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式 案例 奶茶在生活中是很常见的,很多商场周边都有看到各种奶茶店。下面通过程序来模拟这一过程: 1.建立奶茶店类: // 奶茶店 public class MilkTeaShop { // 制作椰果奶茶 public void makeCoconutMilkTea() { System.o 阅读全文
posted @ 2021-01-11 19:33 Phoegel 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 策略模式 案列 现在的生活中在线支付给我们的生活带来了极大的方便,出门可以不用带钱,只要带上手机出门就可以消费了。而支付方式也是多种多样的,可以选择支付宝,微信,银行卡等多种支付方式。张三所在公司最近就需要根据用户选择的支付方式,去调用不同的支付接口对账户进行扣款,下面是他写的代码: 1.直接就是消 阅读全文
posted @ 2021-01-07 19:54 Phoegel 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 备忘录模式 案例 张三一天在下班回家后,想放松一下,于是打开了电脑继续昨天没有挑战成功的 Boos 游戏关卡。这个游戏关卡相当的困难,张三已经打了很多天了还是没有挑战成功,但是还好张三可以保存他在挑战 Boss 之前的状态,不然的话他刚刚得到的幸运道具提升的角色状态就会被 Boss 打掉了。下面用代 阅读全文
posted @ 2021-01-04 20:02 Phoegel 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 状态模式 案例 张三所在公司欲开发一款纸牌游戏软件,在该游戏软件中用户角色具有入门级(Primary)、熟练级(Secondary)和高手级(Professional)三种等级,角色的等级与其积分相对应,游戏胜利将增加积分,失败则扣除积分。入门级具有最基本的游戏功能 ,熟练级增加了游戏胜利积分加倍功 阅读全文
posted @ 2020-12-29 19:24 Phoegel 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 观察者模式 案例 张三他们最近把项目忙完了,公司也暂时没有其他的事做。所以大家在上班的时候都比较悠闲,但是组长说老板今天回来巡查工作情况,大家在老板来的时候注意一下就可以了。大家一听就默默的开始了自己的上班摸鱼模式。过了一会老板果然过来了,大家看到老板过来后调整一下姿势,开启认真工作模式。下面用代码 阅读全文
posted @ 2020-12-28 20:19 Phoegel 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 中介者模式 案例 张三最近非常的忙,因为他们公司接到了新的项目。虽然他只是一个程序员,然而在写代码的同时,更多的时间都在沟通项目的问题。比如:产品经理要和他对需求,UI设计师要和他沟通特殊的界面设计程序好不好实现,他自己还要写代码,每天都工作到很晚 (╯^╰)。就像是下面的程序一样: 1.定义程序员 阅读全文
posted @ 2020-12-22 19:35 Phoegel 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式 案例 最近张三在书店上班,老板有着两家书店。一天老板让他把书店 A 和书店 B 中存放的书籍罗列出来。他来到两个书店发现两个书店存放书籍的格式是不一样的,其中书店 A 内部采用数组的形式,书店 B 采用链表的形式。现在他需要根据不同的格式进行遍历罗列,程序类似下面这样: 1.首先定义书籍 阅读全文
posted @ 2020-12-17 20:30 Phoegel 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 解释器模式 案例 张三公司最近需要开发一款简单的加法/减法解释器,只要输入一个加法/减法表达式,它就能够计算出表达式结果,当输入字符串表达式为“1+2+3+4-5”时,将输出计算结果为3。很快张三就写了出来: 1.计算表达式类: public class Calculator { public in 阅读全文
posted @ 2020-12-15 20:03 Phoegel 阅读(121) 评论(0) 推荐(0) 编辑