摘要:
1,层次结构 复杂系统总是以层次结构的形式存在。复杂系统由一些子系统组成,子系统又由一些更小的子系统组成,如此下去,直到达到某种最低层次的基本组件。2,相对原本 如何划分子系统,选择哪些作为系统的基础组件相对来说比较随意,很大程度取决于观察者的判断。对一个观察者看来很基础(本原)的东西,对另一个观察... 阅读全文
摘要:
OOA,OOD,OOP三者关系OOA的分析结果可以作为OOD的需求模型OOD的设计结果作为OOP的指导蓝图OOP负责最终实现目标系统 阅读全文
摘要:
下面这一份C代码,什么样的人会写出这样的代码呢?C程序员大概不会,更有可能的是汇编程序员。 C和汇编,特别是后面的宏汇编,结构上非常相似,都是典型的过程式语言,当然没有人反对进行对象式编程,但是是做对象式编程的基础设施比较薄弱。 C和汇编,都是典型的弱类型,运行时只有地址的概念,没有类型的概念 C和汇编,都是典型的静态语言,所有的行为在编译时都已经确定,运行时不再修... 阅读全文
摘要:
测试是规格(需求),而不是测试测试就是测试,而不是规格(需求)看起来很矛盾,实际上是有道理的,我一度坚持测试就是规格(需求),我还曾经因为强力坚持测试反映需求的观念和人吵翻,现在我认识到我只看到了一面.以测试通过之前作为分界点,测试呈现两种不同的状态,我们需要以两个不同的角度去审视,这是>带给我的第... 阅读全文
摘要:
对静态语言而言 对象向外界承诺我有什么,客户端可以依赖这些承诺,它通过它的"类型"来承诺这一点 优点是: "它承诺了有的就一定有", 缺点是:"它没有承诺的就一定没有"对动态语言而言 从不向外界承诺我有什么,我随时会变,这会我是鸭子,过会就变成了一只鸡 优点是:"它有什么客户端就可以使用什么"缺点是... 阅读全文
摘要:
最强的关系: 一般与特殊的关系,在OOP里面表现为类的继承关系第二种关系: 整体与部分的关系,花瓣不是花,但是花的一部分最弱的关系: 关联关系,老师和学生有关联关系,如果去除这层关系,则就没有了任何关系 阅读全文
摘要:
AB 今天听到一朋友说,"面向对象也好 面向结构也罢,主要是减少代码冗余就可以了,不用太在乎面向对象" STST 是的,但是减少冗余不是凭空就能做到的,除了复制粘贴,还有隐藏比较深的冗余 设计模式就是提高可重用性的,没有高度的可重用性,是不可能减少荣誉的 因为这个世界上做"任何两件事",总是有相似或者相同的部分,这部分不提取出来,就是冗余 ST 相似提取不出来可以理解为不同吗 相同提不出来是冗... 阅读全文
摘要:
WB Decorator装饰器模式 Intent意图:Attachadditionalresponsibilitiestoanobjectdynamically.Decoratorsprovideaflexiblealternativetosubclassingforextendingfunctio... 阅读全文
摘要:
1,低耦合 低耦合的概念关系简单,可单独理解,测试等2,高聚合 最不希望完全无关的一些概念塞进一个包(包,类,方法)3,充分性是否完整由客户方验证,而不是一开始设计大而全,迭代过程中充实,接口最小化(只有客户需要的)4,完整性 接口应该尽可能反映该抽象概念(接口最大化),需要和充分性进行权衡,个人偏... 阅读全文
摘要:
抽象分类很难,原因有二:1,没有所谓的完美的分类抽象(尽管某些分类比另外一些更好),如果将系统划分为对象系统,那么有多少个设计人员,可能就有多少种划分方法2,明智的分类抽象需要大量的创造性思维,只有创造性思维才能在大量无关的事物之间找到共性 阅读全文