随笔分类 -  Java设计模式

摘要:在讲述这个模式之前,我们先看一个案例:游戏回档 游戏的某个场景,一游戏角色有生命力、攻击力、防御力等数据,在打Boss前和后会不一样,我们允许玩家如果感觉与Boss决斗的效果不理想,可以让游戏恢复到决斗前。下面是代码: 游戏角色类,用来存储角色的生命力、攻击力、防御力的数据。 上面的代码实现了效果, 阅读全文
posted @ 2018-12-23 22:15 认真对待世界的小白 阅读(220) 评论(0) 推荐(0)
摘要:在讲述这个模式之前,我们先看一个案例:中国球员去NBA打篮球 中国球员去NBA打篮球,可是他不懂英语,所以听不懂教练安排的战术,所以现在有三种解决方式 1、球员学会英语。2、教练学会中文。3、请个翻译。 1和2是长久之计,但不能解决迫在眉睫的问题。请个翻译是短暂的更好的选择。 放在软件设计层面上,这 阅读全文
posted @ 2018-12-23 16:55 认真对待世界的小白 阅读(223) 评论(0) 推荐(0)
摘要:在讲述这个模式之前,我们先看一个案例:程序员加班 输出结果: 当前时间:9点 上午工作,精神百倍当前时间:10点 上午工作,精神百倍当前时间:12点 饿了,午饭;犯困,午休当前时间:13点 下午状态还不错,继续努力当前时间:14点 下午状态还不错,继续努力当前时间:17点 加班哦,劳累之急当前时间: 阅读全文
posted @ 2018-12-23 16:54 认真对待世界的小白 阅读(149) 评论(0) 推荐(0)
摘要:在讲述这个模式之前,我们先看一个案例:前台向同事通知“老板来了” 输出结果: 老板回来了,张三关闭股票行情,继续工作老板回来了,李四关闭股票行情,继续工作 这样做的弊端就是耦合度太高:前台类要增加同事类,同时类需要前台的状态,他们之间相互耦合。 现在需要实现解耦,该怎么实现?本着依赖倒转原则,我们给 阅读全文
posted @ 2018-12-19 14:26 认真对待世界的小白 阅读(166) 评论(0) 推荐(0)
摘要:在讲述这个模式之前,我们先看一个案例:模拟最基本的数据库访问:获取用户,向用户表插入记录 这里的SqlserverUser su = new SqlserverUser()使得su这个对象被框死在SQL Server上了,如果这里是灵活的,专业点的说法,是多态的,那么在执行su.insert(use 阅读全文
posted @ 2018-12-19 14:26 认真对待世界的小白 阅读(397) 评论(0) 推荐(0)
摘要:在讲述这个模式之前,我们先看一个案例:建造小人(只需要建造的小人有头、身子、四肢即可) 绘制结果如下图所示 那我现在需要绘制一个比较瘦的人,怎么办? 正常程序员都会想:这还不简单,把这个类复制一份,把绘制参数改下不就行了。 那万一复制的时候少复制了一行,让小人缺胳膊少腿怎么办? 这对一个人来说可是巨 阅读全文
posted @ 2018-12-14 17:24 认真对待世界的小白 阅读(249) 评论(0) 推荐(0)
摘要:在讲述这个模式之前,我们先看一个案例:股民炒股 先看一个比较笨的写法 输出结果: 股票 1 买入股票 2 买入股票 3 买入国债 1 买入房地产 1 买入股票 1 卖出股票 2 卖出股票 3 卖出国债 1 卖出房地产 1 卖出 这种写法耦合度过高,股民投资需要知道各种投资的方法,为什么股民不将资金交 阅读全文
posted @ 2018-12-14 09:16 认真对待世界的小白 阅读(135) 评论(0) 推荐(0)
摘要:在讲述这个模式之前,我们先看一个案例:抄题目:两个学生将老师出的题目抄写在纸上,并且写出答案 先看一个比较笨的写法 public class TestPaperA { public void testQuestion1(){ System.out.println("1+1等于几? a.1 b.2 c 阅读全文
posted @ 2018-12-14 09:15 认真对待世界的小白 阅读(111) 评论(0) 推荐(0)
摘要:在讲述这个模式之前,我们先看一个案例:复制简历 先创建一个简历类 public class Resume { private String name; private String sex; private String age; private String timeArea; private S 阅读全文
posted @ 2018-11-24 13:54 认真对待世界的小白 阅读(188) 评论(0) 推荐(0)
摘要:装饰模式介绍:http://www.runoob.com/design-pattern/decorator-pattern.html 允许向一个现有的对象添加新的功能,同时又不改变其结构。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们来看一个 阅读全文
posted @ 2018-11-21 17:24 认真对待世界的小白 阅读(130) 评论(0) 推荐(0)
摘要:在说明策略模式之前,先看一个打折促销的例子 一家超市进行打折促销:促销形式分别有:“打8折”和“满300减100”,该怎么实现? 用简易的工厂模式: 创建收费接口 public interface CashSuper { double acceptCash(double money); } 创建正常 阅读全文
posted @ 2018-11-20 18:55 认真对待世界的小白 阅读(117) 评论(0) 推荐(0)
摘要:单例模式介绍:http://www.runoob.com/design-pattern/singleton-pattern.html 单例模式就是保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以定义全局变量访问同一个对象,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身 阅读全文
posted @ 2018-11-19 20:50 认真对待世界的小白 阅读(104) 评论(0) 推荐(0)
摘要:代理模式介绍:http://www.runoob.com/design-pattern/proxy-pattern.html 个人理解:代理模式相当于用B类代替A类行使一些A类的功能,B类具有但不完全具有A类的功能。B类有点类似于A类的子类。 代理模式的意图是为其他对象提供一种代理以控制对这个对象的 阅读全文
posted @ 2018-11-19 19:47 认真对待世界的小白 阅读(150) 评论(0) 推荐(0)
摘要:一、简单工厂模式 软件设计的目标:可维护、可复用、可扩展、灵活性好! 通过封装、继承、多态把程序的耦合度降低,使程序容易修改,并且易于复用。 以一个简单的计算器程序(加减乘除)为例,实现该程序有多种方式: 在main方法里把计算器的逻辑写完; 在包含主方法的类里面定义一个方法,将加减乘除的逻辑放到该 阅读全文
posted @ 2018-11-16 16:24 认真对待世界的小白 阅读(250) 评论(0) 推荐(0)