摘要: 视频连接:https://www.bilibili.com/video/BV1iQ4y1M7FV/ 今天由为大家介绍一下策略模式, 先给大家提出一个问题,假设现在是国企假期,我们要去外地旅游,需要选择一种出游方式,可以骑自行车,坐汽车,坐火车,坐飞机,都可以达到我们的目的,请问我们如何进行选择。 如 阅读全文
posted @ 2020-05-03 21:48 liaomengyu 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 一、软件系统的可维护性 无论对于软件的开发者或是维护者,面向对象的软件系统在支持可维护性的同时,提高系统的可复用性都是很重要的。 一个可维护较好的系统,应当允许维护工作容易,准确,安全和简单的形式进行。但是好多软件系统都不具备这样的特性。 导致一个软件可维护性底的真正原因是:过于僵硬,过于脆弱,复用 阅读全文
posted @ 2020-04-17 22:35 liaomengyu 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 视频连接:https://www.bilibili.com/video/BV1iQ4y1M7FV/ 今天为大家分享一下外观模式: 外观模式动机 我们来通过这个例子,看看外观模式的模式动机: 假设现在在一个餐馆里面,有顾客a、b、c需要点餐吃饭。如左图所示,顾客a、b、c需要自己取点餐,然后自己去取餐 阅读全文
posted @ 2020-04-08 17:43 liaomengyu 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 视频讲解:https://www.bilibili.com/video/BV1iQ4y1M7FV/ 今天为大家分享一下建造者模式 以该图为例子,宝马汽车由很多部件组成,对于我们每一个买车用车的用户来说,我门不需要指导这些部件,分别是怎么装配的,她的装配细节是什么,我们的需求只是,使用这辆车。 抽象来 阅读全文
posted @ 2020-03-28 19:13 liaomengyu 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 讲解连接:https://www.bilibili.com/video/BV1y741117Ku 开闭原则 智能控制例子 设计一个控制器,使用控制器控制电灯的开关,代码设计如下: 然而,需求是会随着时间变化的,控制器现在不仅仅需要控制电灯了,还要控制电脑,洗衣机,空调等等。 由此,请大家思考这个问题 阅读全文
posted @ 2020-03-25 21:07 liaomengyu 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 迪米特法则 定义 也被称为最少知识原则(Least knowledge Principle,LKP)也可以表述为 一个对象应该对其他对象有最少的了解,即一个类应该对自己需要耦合或调用的类知道的最少 问题由来 类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案 阅读全文
posted @ 2020-03-24 23:10 liaomengyu 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 工厂作业方法 作业问题: 某软件公司欲开发一个数据格式转换工具,可以将不同数据源如txt文件、数据库、Excel表格中的数据转换成XML格式。为了让系统具有更好的扩展性,在未来支持新类型的数据源,开发人员使用工厂方法模式设计该转换工具的核心类,客户端只需使用工厂类即可获得具体的转换类对象,再调用其相 阅读全文
posted @ 2020-03-24 22:50 liaomengyu 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 一、依赖倒置原则定义 1、上层模块不应该依赖底层模块,它们都应该依赖于抽象。2、抽象不应该依赖于细节,细节应该依赖于抽象。 二、依赖倒置原则详解 在依赖倒置原则中的倒置指的是和一般OO设计的思考方式完全相反。 举个例子,现在你需要实现一个比萨店,你第一件想到的事情是什么?我想到的是一个比萨店,里面有 阅读全文
posted @ 2020-03-21 20:35 liaomengyu 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 一、定义 合成/聚合复用原则是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。 概括:要尽量使用合成/聚合,尽量不要使用继承。 二、为什么要合成聚合: 1)在面向对象设计中,可以通过两种基本方法在不同的环境中复用已有的设计和实现,即通 阅读全文
posted @ 2020-03-21 20:10 liaomengyu 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 多态 多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。 如图: 多态的优点 1. 消除类型之间的耦合关系 2. 可替换性 3. 可扩充性 4. 接口性 5. 灵活性 6. 简化性 多态的前提: 子父类继承关系; 方法的重写; 父类引用指向子类对象 阅读全文
posted @ 2020-03-16 23:50 liaomengyu 阅读(107) 评论(0) 推荐(0) 编辑