2.GRASP原则二:信息专家 Information Expert  What is a general principle of assigning responsibility to objects? 为一个对象 分配职责的一般原则是什么?  “鸡鸣狗盗” 战国时候,齐国的孟尝君喜欢招纳各种人做门客,号称宾客三千….2.2 GRASP rule2: Information Expert  Name: Information Expert (信息专家)  Problem:  Wha…
3.GRASP原则三: 低耦合 Low Coupling  How to support low dependency, low change impact and increased reuse?  如何保证设计方案支持低的依赖性.低的变化影响度.增加可重用性?3.2 耦合的定义Coupling  耦合: 一个元素与其它元素的联接.感知以及依赖程度的度量 Measure of how strongly one element is: connected to. has knowledge…
重要的几个GRASP原则:1.控制器模式   2.创建者模式 (原则)3.信息专家模式(原则) 4. 高内聚 低耦合   这里所说的模式并不是java中针对具体的事件的设计模式 主成功场景的几个操作:1.makemewsale  2.enteritem   3.endsale   4.makepayments 对1)进行交互图的考虑:参照操作的契约来 ----我们首先要考虑的是为系统 操作选择控制器,根据控制器模式,所以说以向  register发送消息为系统makenewsal的开始. ---…
GRASP原则七: 纯虚构 Pure Fabrication  如果依据信息专家原则获得的解决方案不合适,既不想违反低耦合.高内聚,也不想违 反其他的原则, 该如何把职责分配给对象?  左右为难….2.1 GRASP rule7: Pure Fabrication 纯虚构  Name: Pure Fabrication  Problem: 依据一些原则(比如,信息专家)获得的解决方案不合 适的情况下,既不想违反低耦合.高 内聚,也不想违反其他的原则, 如 何 把 职 责 分 配 给 对…
GRASP原则六: 多态 Polymorphism  How to handle alternative behaviors based on type 如何处理依据类型不同而有 不同行为的一类需求 ?  比如,开餐馆  苏州人喜欢甜.四川人喜欢麻.湖南人喜欢辣,咋处理 ?1.1 9条GRASP原则  Information Expert  responsibilities should be assigned to objects that contain relevant info…
4.GRASP原则四:控制器 Controller  What first object beyond the UI layer receives and co-ordinates (controls) a system operation? 在领域层,由谁负责首先接收并协调来自UI层的系统操作?4.1 Mini Exercise 4  For Monopoly game, Which object starts the game?  Understanding the Problem …
1.GRASP原则一: 创建者 Creator  Who should be responsible for creating a new instance of some class 由谁来负责创建某个类的新实例(对象)1.1 GRASP 原则  GRASP  General Responsibility Assignment Software Patterns  初学对象技术的同学,在编码或绘制交互图和类图时,应该理解并应用 GRASP的内在思想, 以便尽快地掌握这些基本原则,它们是…
原则二.为你的常量选择readonly而不是const      Prefer readonly to const 对于常量,C#里面有两个不同的版本:运行时常量(readonly)和编译时常量(const) 编译时常量更快更直接,但在可维护性上不及运行时常量.保留编译时常量是为了满足那些对性能要求克刻,且随着程序运行时间的过去, 其值永远不发生改变的常量使用的(译注:这说明编译时常量是可以不被C#采用的,但考虑到性能问题,还是做了保留). //Compile time constant: pu…
GRASP原则九: 隔离变化  Protected Variations  需求一定会变化的!如何做到以系统的局部变化为代价就可以应对这一点?4.1 GRASP rule9: Protected Variations  Name: Protected Variations 隔离变化  Problem: 如何设计对象.系统和子系统,使得这些成分里面的变化因素. 不稳定因素不会对系统的其余 部分造成意想不到的影响? How to design objects, systems and sub…
GRASP原则八: 间接 Indirection  若两个对象直接连接,导致耦合太紧,如何解决?3.1 GRASP rule8: Indirection 间接  Name: Indirection  Problem: 把职责分配到哪里可以避免两个或者多个对象之间的 直接耦合?如何解耦对象以保持较高的可重 用性? Where to assign a responsibility to avoid direct coupling between two or more objects? How…