摘要: 1.模式动机 2.模式定义 3.模式结构 4.模式分析 5.实例: 视频链接:https://www.bilibili.com/video/BV1xV411Z7F3/ 阅读全文
posted @ 2020-04-13 11:48 杨敏 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 1.什么是代理模式? 代理模式又称为委托模式,是结构型的设计模式之一 ,它可以为其他对象提供一种代理( proxy )以控制对这个对象的访问。 所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类进行交互,而代理一般在交互的过程中(交互的前后)进行某些特别 阅读全文
posted @ 2020-04-07 21:20 杨敏 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 起源: 建造者模式是系统中所使用的设计模式中较典型的一一个。我们知道,如何把问题分解为多个对象,除了取决于问题的本身,也受设计人员主观见解的影响。尽管如此,经验告诉我们,-些包含少数几个对象的设计模块,往往像建筑砖块那样,出现于 更大、更复杂的系统架构中,这些模块,称为“设计模式 ”。 设计模式出自 阅读全文
posted @ 2020-03-28 11:03 杨敏 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 1.起源. 1988 年,Bertrand Meyer在他的著作《Object Oriented Software Construction》中提出了开闭原则(OCP, Open-Closed Prineiple) ,开闭原则的描述比较简单,具体如下:Software entities (elass 阅读全文
posted @ 2020-03-26 10:16 杨敏 阅读(335) 评论(0) 推荐(1) 编辑
摘要: 迪米特法则(Law of demeter,缩写是LOD)要求:一个对象应该对其他对象保持最少了解, 通缩的讲就是一个类对自己依赖的类知道的越少越好,也就是对于被依赖的类,向外公开的方法应该尽可能的少。 迪米特法则认为任何一个对象或者方法,它应该只能调用下列对象: 该对象本身 作为参数传进来的对象(也 阅读全文
posted @ 2020-03-24 16:01 杨敏 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 某软件公司欲开发一个数据格式转换工具,可以将不同数据源如txt文件、数据库、Excel表格中的数据转换成XML格式。为了让系统具有更好的扩展性,在未来支持新类型的数据源,开发人员使用工厂方法模式设计该转换工具的核心类,客户端只需使用工厂类即可获得具体的转换类对象,再调用其相应方法实现数据转换操作。绘 阅读全文
posted @ 2020-03-23 17:47 杨敏 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 1.定义: 合成复用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用功能的目的。简言之:复用时要尽量使用组合/聚合关系(关联关系),少用继承。 在面向对象设计中,可以通过两种方法在不同的环境中复用已有 阅读全文
posted @ 2020-03-21 09:42 杨敏 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 依赖倒置原则的原始定义为:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。其核心思想是:要面向接口编程,不要面向实现编程。 由于在软件设计中,细节具有多变性,而抽象层则相对稳定,因此以抽象为基础搭建起来的架构要比以细节为基础搭建起来的架构要稳定得多。这里的抽象 阅读全文
posted @ 2020-03-20 09:06 杨敏 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 1.依赖关系 简单的理解,依赖就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖。表现在代码层面,为类B作为参数被类A在某个method方法中使用。在UML类图设计中,依赖关系用由 阅读全文
posted @ 2020-03-16 17:35 杨敏 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 1.软件可复用性 复用又叫重用,是重复使用的意思。一般软件的复用率并不高。复用的好处可以得到 较高的生产效率以及随之而来的成本降低、较高的软件质量(错误可以更快的被纠正)以及 恰当的使用复用可以改善系统的可维护性。复用不仅仅是代码的复用,虽然代码复用确实是复用的一个初等形式,代码的剪贴复用、算法的复 阅读全文
posted @ 2020-03-15 09:07 杨敏 阅读(1534) 评论(0) 推荐(0) 编辑