Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
对象责任职责协作
什么是GRASP模式?
GRASP模式(一般责任分配软件模式)描述了对象设计和责任分配的基本原则和模式。 确定需求并创建领域模型后,如何将方法添加到Class类中,并定义对象之间的消息传递以满足要求。GRASP模式是一种学习辅助工具,可帮助人们理解基本对象设计,并以有条理,合理,可解释的方式应用设计推理。这
比SOLID更重要的与DDD设计相关的GRASP原则 - Kamil Grzybek
我最近注意到很多注意力都集中在SOLID原则上。这是非常好的事情,因为它是面向对象设计(OOD)和编程的总体基础。对于面向对象语言的开发人员,SOLI
GRASP 之信息专家模式 - Kamil Grzybek
问题:将责任分配给对象的基本原则是什么?解决方案:将责任分配给具有实现它所需信息的类。 在下面的示例中, Customer类引用了所有客户 订单,因此很自然地负责计算订单的总价值:
上下文映射关系中如何解耦特定和通用的领域? - Nick Tune
您正在构建一个新系统,并且您的团队的两名成员各自提出了用于发送通知的两种架构,哪一个是正确?如何选择? 第一个开发人员提出的是推送模型:有界上下文应指示通知上下文发送通知。专门的通知上下文应该只是遵循来自其他上下文的命令,并在指示时发送通知。 第二个开发人员不
经典OOD书籍《对象设计:角色、责任和协作》PDF免费下载
经典 OOD 书籍《对象设计:角色、责任和协作》( Object Design: Roles, Responsibilities, and Collaborations )可从 Pearson 的网站上以 pdf 格式免费下载(他们已经慷慨地提供了此书)。点击标题。对象设计在对象技术
花费优秀程序员95%时间精力的事情 - MICHAEL JACKSON
软件开发人员最常犯的错误是:把东西放在错误的地方。将本来应该分离的责任与概念耦合在一起。对我来说,这占据软件开发中95%。只是弄清楚*事物所属的地方。 其他观点:1. 我担心开发人员会强调并花费很长时间来决
GRASP之多态性模式 - Kamil Grzybek
问题:如何根据类型处理替代方案?解决方案:当相关的替代或行为因类型(类)而异时,将行为(使用多态操作)的责任分配给行为变化的类型。
高内聚低耦合的集中决策设计
假设,我们正在构建另一个电子商务平台。其关键业务流程之一当然是处理订单。付款成功后,订单模块(域)必须异步调用仓库,准备购买的货物。然而,这些货物可能并不在那里。通常情况下,这不是什么大问题,因为我们可以从供应商那里获得。但是,如果有任何物品已经没有了怎么办?订单已经下了!钱已经转手了。我们的客户已
GRASP之控制器模式 - Kamil Grzybek
问题:UI层之外的第一个对象是否接收并协调“控制”系统操作?解决方案:将责任分配给表示以下选项之一的对象: - 表示整个“系统”,“根对象”,运行软件的设备或主要子系统(这些都是外观控制器的变体) -表示发生系统操作的用例场景(用例或会话控制器) 这
GRASP之间接模式 - Kamil Grzybek
问题:在哪里指定责任以避免两件或更多件事之间的直接耦合?解决方案:将责任分配给中间对象以在其他组件或服务之间进行调解,以使它们不直接耦合。这是
GRASP之低耦合模式 - Kamil Grzybek
问题:如何减少变化的影响?如何支持低依赖性和增加重用?解决方案:分配职责以使(不必要的)耦合保持低水平。使用此原则来评估替代方案。
GRASP之受保护的变化 - Kamil Grzybek
问题:如何设计对象,子系统和系统,以便这些元素的变化或不稳定性不会对其他元素产生不良影响?解决方案:确定预测变化或不稳定的点,分配责任以围绕它们创建稳定的接口。在我看来,这是与其他GRASP原则间接相关的最重要的原则。目前,最重要的软件指标之一是易于更改。作为架构师和程序员,
GRASP 之创建者Creator模式 - Kamil Grzybek
问题:谁创建对象A?解决方案:如果下面情况其中一个为真,则为B类分配创建对象A的责任(越多越好) - B包含或复合聚合A - B记录A - B密切使用A - B具有A 的初始化数据 例子:
GRASP之高凝聚模式 - Kamil Grzybek
问题:如何保持对象集中,易于理解,易于管理以及作为副作用支持低耦合?解决方案:分配责任,以保持凝聚力。用凝聚力大小来作为分配职责的判断标准。
GRASP之纯粹的制作模式 - Kamil Grzybek
问题:什么对象应该有责任,当你不想使高凝聚力和低耦合时,但其他原则提供的解决方案不合适?解决方案:将一组高度凝聚力的责任分配给脚手架或帮助类之类工具,这些工具并不代表问题域中的概念。有时候很难弄清楚应该在哪里放置责任。这就是领域驱动设计中存在领域服务概念的原因。领域服务保存与
Michael Feathers:编程的艺术
编程是一次只做一件事的艺术
幽默:能否将人类群体视为神经元集合的延伸?
当前人们对大脑自身的认识深入促进人工智能和认知科学等方面发展,仿真人类的大脑思考模型称为启发很多创新方法研究的源泉,例如人其实是神经元交互聚合的产物,人类群体是否可视为神经元集合的延伸?如何借鉴神经元这种演进方法来研究复杂系统?维特斯坦特说:太初有为,世界是由行为互动组成=世界是由事实组成,
Golang链模式
链模式( Chain Pattern)是用于编写更好、更健壮的代码的众多设计模式之一。 这种模式的工作原理类似于链式生产,链中的每个环节都负责一项具体任务。当链启动时,第一个执行其任务,然后,如果没有错误,则传递到下一个,直到最后一个负责人。到那时,链条就
下页