摘要: 一、什么是观察者模式 观察者一般可以看做是第三者,比如在学校上自习的时候,大家肯定都有过交头接耳、各种玩耍的经历,这时总会有一个“放风”的小伙伴,当老师即将出现时及时“通知”大家老师来了。再比如,拍卖会的时候,大家相互叫价,拍卖师会观察最高标价,然后通知给其它竞价者竞价,这就是一个观察者模式。 对于 阅读全文
posted @ 2020-04-16 10:48 昵称怎么这么难设定 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 代理模式 代理(Proxy)是一种设计模式,提供了间接对目标对象进行访问的方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的功能上,增加额外的功能补充,即扩展目标对象的功能. 这就符合了设计模式的开闭原则,即在对既有代码不改动的情况下进行功能的扩展。 举个例子来说明代理的作用:明 阅读全文
posted @ 2020-04-07 00:56 昵称怎么这么难设定 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 迪米特法则 ♦定义: 迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。 迪米特法则又称为最少知识原则(Least Knowledge Principle, LKP) ♦迪米特法则通用表述方式: 只与你直接的朋友们通信(Only talk to 阅读全文
posted @ 2020-03-28 14:11 昵称怎么这么难设定 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 简单工厂模式: 实例化对象的时候不再使用 new Object()形式,可以根据用户的选择条件来实例化相关的类。对于客户端来说,去除了具体的类的依赖。只需要给出具体实例的描述给工厂,工厂就会自动返回具体的实例对象。 具体实现如下: 1. 定义一个操作接口: public interface Oper 阅读全文
posted @ 2020-03-28 14:05 昵称怎么这么难设定 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 开闭原则(Open Close Principle): Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification. 软件对象(类、模块 阅读全文
posted @ 2020-03-26 17:22 昵称怎么这么难设定 阅读(122) 评论(0) 推荐(0) 编辑
摘要: UML图如下: BDconvert、TxtConvert、XmlConvert分别为转换器接口的是实现类,其中方法为返回对应的执行接口的执行类。 具体代码如下 package Demo.Interface; public interface Convertor { public Excute get 阅读全文
posted @ 2020-03-21 22:49 昵称怎么这么难设定 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 定义:经常又叫做合成复用原则(Composite ReusePrinciple或CRP),尽量使用对象组合,而不是继承来达到复用的目的。 就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新对象通过向这些对象的委派达到复用已有功能的目的。简而言之,要尽量使用合成/聚合,尽量不要使用继 阅读全文
posted @ 2020-03-21 21:43 昵称怎么这么难设定 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 什么是依赖倒置原则(Dependence Inversion Principle, DIP) 依赖倒置原则的包含如下的三层含义: 高层模块不应该依赖低层模块,两者都应该依赖其抽象 抽象不应该依赖细节 细节应该依赖抽象 每一个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑就是低层模块(一般是接口, 阅读全文
posted @ 2020-03-21 21:42 昵称怎么这么难设定 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 一、软件的可复用性 可复用性(Reuseability)复用又叫重用,是重复使用的意思。一般软件的复用率并不高,尤其在国内。复用的好处可以得到 较高的生产效率以及随之而来的成本降低、较高的软件质量(错误可以更快的被纠正)以及 恰当的使用复用可以改善系统的可维护性。 传统用法 代码剪贴 最初步的复用, 阅读全文
posted @ 2020-03-15 10:45 昵称怎么这么难设定 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 1、依赖关系(Dependency) 对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。 例如 class A{ public B method(C c,D d){ E e = new E(); ... B b = new B(); . 阅读全文
posted @ 2020-03-15 10:39 昵称怎么这么难设定 阅读(115) 评论(0) 推荐(0) 编辑