GRASP

     

GRASP之受保护的变化 - Kamil Grzybek

1375

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

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

1243 2K

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

GRASP之多态性模式 - Kamil Grzybek

1707 1

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

GRASP之间接模式 - Kamil Grzybek

1653

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

GRASP之高凝聚模式 - Kamil Grzybek

1283

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

GRASP之低耦合模式 - Kamil Grzybek

1474

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

GRASP之控制器模式 - Kamil Grzybek

1710 2K

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

GRASP 之创建者Creator模式 - Kamil Grzybek

1339

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

GRASP 之信息专家模式 - Kamil Grzybek

3138 2

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

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

2 3216 3 7K

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