摘要: Java语言允许通过程序化的方式间接对Class进行操作。Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息,如构造函数、属性和方法等。Java允许用户借由这个与Class相关的元信息对象间接调用Class对象的功能,这就 阅读全文
posted @ 2018-12-19 14:31 认真对待世界的小白 阅读(242) 评论(0) 推荐(0)
摘要: 在讲述这个模式之前,我们先看一个案例:前台向同事通知“老板来了” 输出结果: 老板回来了,张三关闭股票行情,继续工作老板回来了,李四关闭股票行情,继续工作 这样做的弊端就是耦合度太高:前台类要增加同事类,同时类需要前台的状态,他们之间相互耦合。 现在需要实现解耦,该怎么实现?本着依赖倒转原则,我们给 阅读全文
posted @ 2018-12-19 14:26 认真对待世界的小白 阅读(164) 评论(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)
摘要: 单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因。 如果一个类承担的责任过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受意想不到的破坏。 软件设计真正要做的许多内容,就是发现职责并把那些职 阅读全文
posted @ 2018-11-21 09:54 认真对待世界的小白 阅读(168) 评论(0) 推荐(0)
摘要: 在说明策略模式之前,先看一个打折促销的例子 一家超市进行打折促销:促销形式分别有:“打8折”和“满300减100”,该怎么实现? 用简易的工厂模式: 创建收费接口 public interface CashSuper { double acceptCash(double money); } 创建正常 阅读全文
posted @ 2018-11-20 18:55 认真对待世界的小白 阅读(117) 评论(0) 推荐(0)