摘要: 一、概念:装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 二:UML示意图 三、优缺点: 优点: 实现了装饰功能和对象核心功能的分离,降低了类的复杂度,遵守了单一职责原则 扩展新装饰(功能)只需要增加装饰类,遵守了 阅读全文
posted @ 2020-03-11 14:26 夜里寻星 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 一、概念:策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。 二:策略模式的特点 : 定义了一组算法(业务规则); 封装了每个算法; 这族的算法可互换代替。 三、UML示意图: Context类定义了上下文,通过分离出策略这一项,使得其他部分可复用。需要用到 阅读全文
posted @ 2020-03-10 22:00 夜里寻星 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 一、概念:定义一个工厂类,并对外暴露一个静态接口。调用者使用该接口并传入一个参数,接口会根据该参数,实例化出一个对应的对象并返回给调用者。因为简单工程类创建对象的方法是静态(static)的,所以又叫做静态工厂方法。 二、一般使用方法:定义一个抽象类以及它的一些抽象方法,并且有多个子类继承这个抽象类 阅读全文
posted @ 2020-03-10 21:37 夜里寻星 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 1、有关编写并发软件的中肯说法: 并发会在性能和编写额外代码上增加一些开销; 正确的并发是复杂的,即便对于简单的问题也是如此; 并发缺陷并非总能重现,所以常被看做偶发事件而忽略,未被当做真的缺陷看待; 并发常常需要对设计策略的根本性修改。 2、防御并发代码问题的原则和技巧 单一权责原则。分离并发相关 阅读全文
posted @ 2020-03-06 23:57 夜里寻星 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1、简单设计的四条规则: 运行所有测试; 不可重复; 表达了程序员的意图; 尽可能减少类和方法的数量; 以上规则按其重要程度排列。 2、全面测试并持续通过所有测试的系统,就是可测试的系统。不可测试的系统同样不可验证。不可验证的系统,绝不应部署。 3、重构。递增式地重构代码。增加代码之后要琢磨一下变化 阅读全文
posted @ 2020-03-06 22:59 夜里寻星 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 1、软件系统应将启始过程和启始过程之后的运行时逻辑分离开,在启始过程中构建应用对象,也会存在互相缠结的依赖关系。 2、将构造与使用分开的方法之一是将全部构造过程搬迁到一个专门的模块中,设计系统的其余部分时,假设所有对象都已正确构造和设置。 3、有时应用程序也要负责确定何时创建对象,在这种情况下,可以 阅读全文
posted @ 2020-03-06 05:47 夜里寻星 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 联机算法:是在任意时刻算法对要操作的数据只读入(扫描)一次,一旦被读入并处理,它就不需要在被记忆了。而在此处理过程中算法能对它已经读入的数据立即给出相应子序列问题的正确答案。 离线算法:是指基于在执行算法前输入数据已知的基本假设,也就是说,对于一个离线算法,在开始时就需要知道问题的所有输入数据,而且 阅读全文
posted @ 2020-03-03 19:22 夜里寻星 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 1、类应该从一组变量列表开始。如果有公共静态常量,应该先出现。然后是私有静态变量,以及私有实体变量。很少会有公共变量。公共函数应跟在变量列表之后。而公共函数调用的私有工具函数紧随在该公共函数后面。这符合了自顶向下原则,让程序读起来就像一篇报纸文章。 2、想办法使之保有隐私。放松封装总是下策。 3、类 阅读全文
posted @ 2020-03-03 16:34 夜里寻星 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1、TDD(测试驱动开发,Test Drive Development)三定律: 定律一、在编写不能通过的单元测试前,不可编写生产代码。 定律二、只可编写刚好无法通过的单元测试,不能编译也算不过。 定律三、只可编写刚好足以通过当前失败测试的生产代码。 2、测试代码和生产代码一样重要。 3、测试能让你 阅读全文
posted @ 2020-03-03 14:59 夜里寻星 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 1、所谓的“边界”是指外来代码(三方程序包、开放源代码、其他团队打造的组件和子系统)和自己写的代码之间进行整合的连接区域 2、使用第三方或者是自己或团队不可控代码时,可以把这些代码打包封装起来。 3、避免从公共API中返回边界接口,或将边界接口作为参数传递给公共API。 4、不要在生产代码中试验新东 阅读全文
posted @ 2020-02-25 21:35 夜里寻星 阅读(213) 评论(0) 推荐(0) 编辑