#GRASP

GRASP 之信息专家模式 - Kamil Grzybek

19-09-05 1733 1 banq

问题:将责任分配给对象的基本原则是什么? 解决方案:将责任分配给具有实现它所需信息的类。 在下面的示例中, Customer类引用了所有客户 订单,因此很自然地负责计算订单的总价值: ... 详细

比SOLID更重要的与DDD设计相关的GRASP原则 - Kamil Grzybek

19-09-05 2 1550 3 banq

我最近注意到很多注意力都集中在 SOLID 原则上。这是非常好的事情,因为它是 面向对象 设计(OOD)和编程的总体基础。对于面向对象语言的开发人员,SOLID原则的知识是编写具有良好质量特征的... 详细

GRASP之低耦合模式 - Kamil Grzybek

19-09-05 633 banq

问题:如何减少变化的影响?如何支持低依赖性和增加重用? 解决方案:分配职责以使(不必要的)耦合保持低水平。使用此原则来评估替代方案。 耦合 是衡量一个元素如何与另一个元素相关的度量。更高的耦合意... 详细

GRASP之间接模式 - Kamil Grzybek

19-09-05 806 banq

问题:在哪里指定责任以避免两件或更多件事之间的直接耦合? 解决方案:将责任分配给中间对象以在其他组件或服务之间进行调解,以使它们不直接耦合。 这是 Mediator Pattern的 用武之地。而不... 详细

GRASP之受保护的变化 - Kamil Grzybek

19-09-05 608 banq

问题:如何设计对象,子系统和系统,以便这些元素的变化或不稳定性不会对其他元素产生不良影响? 解决方案:确定预测变化或不稳定的点,分配责任以围绕它们创建稳定的接口。 在我看来,这是与其他GRASP原则... 详细

GRASP 之创建者Creator模式 - Kamil Grzybek

19-09-05 649 banq

问题:谁创建对象A? 解决方案:如果下面情况其中一个为真,则为B类分配创建对象A的责任(越多越好) - B包含或复合聚合A  - B记录A  - B密切使用A  - B具有A 的初始化数... 详细

GRASP之纯粹的制作模式 - Kamil Grzybek

19-09-05 475 banq

问题:什么对象应该有责任,当你不想使高凝聚力和低耦合时,但其他原则提供的解决方案不合适? 解决方案:将一组高度凝聚力的责任分配给脚手架或帮助类之类工具,这些工具并不代表问题域中的概念。 有时候很难弄... 详细

GRASP之高凝聚模式 - Kamil Grzybek

19-09-05 470 banq

问题:如何保持对象集中,易于理解,易于管理以及作为副作用支持低耦合? 解决方案:分配责任,以保持凝聚力。用凝聚力大小来作为分配职责的判断标准。 凝聚力 衡量元素的所有责任的相关程度。换句话说,元... 详细

GRASP之多态性模式 - Kamil Grzybek

19-09-05 902 1 banq

问题:如何根据类型处理替代方案? 解决方案:当相关的替代或行为因类型(类)而异时,将行为(使用多态操作)的责任分配给行为变化的类型。 多态性 是 面向对象 设计的基本原则。在这种情况下,原则... 详细

GRASP之控制器模式 - Kamil Grzybek

19-09-05 751 banq

问题:UI层之外的第一个对象是否接收并协调“控制”系统操作? 解决方案:将责任分配给表示以下选项之一的对象: - 表示整个“系统”,“根对象”,运行软件的设备或主要子系统(这些都是外观控制器的... 详细

共有 10