摘要: 访问者模式 定义:表示一个作用于某对象结构中的各元素的操作。它让我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 角色:访问者(Vistor)接口、具体访问者、访问元素(Element)接口、具体元素 理解:1.元素对象通常是“部分-整体”结构中的节点。2.客户端创建一个Concret 阅读全文
posted @ 2020-04-17 11:20 曾梓楠 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式 允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。 装饰者模式有四个角色: 1)抽象构建(Component ):给出一个抽象接口,来规 阅读全文
posted @ 2020-04-08 15:06 曾梓楠 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1.动机 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模式可以将部件和其 阅读全文
posted @ 2020-03-27 11:22 曾梓楠 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 视频 https://www.bilibili.com/video/BV1r7411176Z/ 阅读全文
posted @ 2020-03-25 21:59 曾梓楠 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 在简单工厂模式中产品的创建统一在工厂类的静态工厂方法中创建,体现了面形对象的封装性,客户程序不需要知道产品产生的细节,也体现了面向对象的单一职责原则(SRP),这样在产品很少的情况下使用起来还是很方便, 但是如果产品很多,并且不断的有新产品加入,那么就会导致静态工厂方法变得极不稳定,每次加入一个新产 阅读全文
posted @ 2020-03-25 17:56 曾梓楠 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 迪米特法则 迪米特法则又叫作最少知识原则,就是说,一个对象应当对其他对象要有尽可能少的了解。 迪米特法则所谈论的,就是对对象之间的信息流量、流向以及信息的影响的控制。 在软件系统中,一个模块设计得好不好最主要、最重要的标志,就是该模块在多大程度上将自己的内部数据和其他与实现有关的细节隐藏起来。 一个 阅读全文
posted @ 2020-03-25 17:19 曾梓楠 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 合成聚合原则 定义: 经常又叫做合成复用原则(Composite ReusePrinciple或CRP),尽量使用对象组合,而不是继承来达到复用的目的。 就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新对象通过向这些对象的委派达到复用已有功能的目的。简而言之,要尽量使用合成/聚合 阅读全文
posted @ 2020-03-21 21:35 曾梓楠 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 依赖倒置原则 定义: 高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来: 类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。 这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如 阅读全文
posted @ 2020-03-21 21:30 曾梓楠 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 类之间的关系 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时 阅读全文
posted @ 2020-03-15 22:32 曾梓楠 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 软件的可复用性和维护性 1.软件的可维护性 所谓软件的可维护性其实说简单了就是软件代码的可被修改的容易程度。如前言所说,代码反复修改的情况不可避免, 这种软件的不断演化过程——具体就是修正错误;适应新环境;满足新需求——虽然貌似将软件的功能变的越发强大 ,但是事实上这些改变总是或多或少的有悖于当初的 阅读全文
posted @ 2020-03-14 22:40 曾梓楠 阅读(248) 评论(0) 推荐(0) 编辑