03 2018 档案
摘要:ISP应用的场景是某些类不符合SRP原则,但使用这些类的客户端应该根据它们的父类来使用(我感觉这句话应该改为:客户端应该根据它们的抽象类\接口来使用它们),而不是直接使用它们。 定义: 客户端不应该依赖它不需要的接口 类间的依赖关系应该建立在最小的接口上 我们可以把这两个定义概括为一句话:建立单一接
阅读全文
摘要:子类的对象提供了父类的所有行为,且加上子类额外的一些东西(可以是功能,可以是属性)。当程序基于父类实现时,如果将子类替换父类而程序不需修改,则说明符合LSP原则。 这个解释看的似懂非懂,再看下面更进一步的解释: 函数使用指向父类的指针或引用时,必须能够在不知道子类类型的情况下使用子类的对象。 子类必
阅读全文
摘要:OCP原则:“对扩展开放,对修改关闭” 这句话是简述,其实隐藏了重要的主语。真正的意义是:对使用者修改关闭,对提供者扩展开放。 例如: class A 和 class B。A调用了B的一个方法,那么A就是consumer,也就是使用者。B就是provider,提供者。对使用者修改关闭是指业务逻辑上有
阅读全文
摘要:1.一个类具有什么职责,应该是站在他人的角度或者说是使用者的角度来定义。职责不是一件事,而是许多和职责相关的事组成的。 例如:一个快递员,除了送快递,还需要做分包、收款。那么快递员的职责是和快递相关的一系列的事。快递员不能说我还可以有做饭。作为快递员的使用者,只希望你能处理好他的快递,并不会希望你还
阅读全文
摘要:1.为什么高内聚低耦合? 为了降低复杂度。如何去降低?首先看低内聚,高耦合是什么样的。 1.低内聚 一个低内聚的模块,会存在一些职责之间没有关联的方法。它内部的每个职责都会有对应的使用者模块。当这个模块内部某个职责发生改变的时候,其他与这个职责不相关的使用者模块因为也依赖于它,因此也就需要重新测试来
阅读全文
摘要:1.耦合的定义 模块之间互相依赖的程度。 耦合和内聚的区别:耦合关注的是模块间的依赖程度;内聚关注的是模块内部元素的结合程度。 2.耦合的分类 无耦合:模块间完全没有关系和交互。无耦合的模块意味着所有的功能都是自给自足,什么都得自己做。如果是非常底层的模块,还可以接受,但是非底层模块如果完全无耦合,
阅读全文
摘要:【内聚】 1.内聚的定义 一个模块内部元素彼此结合的紧密程度。其中关键字:模块、元素、结合 模块:大到子系统,小到一个函数,都可以看成一个模块 元素: 模块:包、命名空间等 包:类、接口、全局数据等 类/接口:方法、属性 函数:内部的代码 结合: 用“凝聚力”来理解,更贴切。 假如说一个类的方法,都
阅读全文
摘要:设计原则这章所阐述的概念: 内聚 耦合 什么是高内聚低耦合 以及5个类设计原则:SOLID原则
阅读全文
摘要:主要以C++和JAVA两种语言说明如何实现设计模型的。本人不会,暂跳过。
阅读全文
摘要:【动态模型分类】 1.状态模型 - 对象生命周期的状态变化。通过状态模型了解到对象有哪些状态、状态如何转换、如何触发。详细: 2.活动模型 - 主要描述业务中哪些对象承担什么任务、做了哪些处理、对象之间的交互关系,描绘了业务的工作流程。详细: 3.序列模型 - 又叫时序图,用于描述对象之间按照时间顺
阅读全文

浙公网安备 33010602011771号