- 1
- 0
- 约1.91万字
- 约 173页
- 2025-08-15 发布于广东
- 举报
控制器模式根据MVS(ModelViewSeparation)原则,UI对象不应当包含应用逻辑或业务逻辑。应该把UI层的操作或者请求委派给一个协调者,由协调者把任务转发给领域层的领域对象。控制器就是这样一个协调者。例如在POS机系统中,enterItem和endSale这样的系统事件,应使用谁作为控制器?指导原则是:控制器是UI层之上的第一个对象,它负责接收和处理系统操作消息。控制器的选择原则是:代表全部“系统”、“根对象”、运行软件的设备或主要的子系统(如,外观控制器);代表发生系统操作的用例场景(如,会话控制器)。在用例场景中发生的系统事件通常命名为UseCaseNameHandler、UseCaseNameCoordinator或UseCaseNameSession。对于用同一用例场景的所有系统事件使用相同的控制器类。第95页,共173页,星期日,2025年,2月5日控制器类第96页,共173页,星期日,2025年,2月5日低耦合模式低耦合模式是一个评价模式。低耦合原则适用于软件开发的很多方面,它是构件软件最重要的目标之一。指导原则是:分配职责以使耦合保持在较低的水平。在真实世界领域中,Register记录了Payment,所以创建者模式建议将Register作为创建Payment的候选者。Register实例会把addPayment消息发送给Sale,并把新的Payment作为参数传递给它。这种职责分配使Register类和Payment类之间产生了耦合,即Register类要知道Payment类。第97页,共173页,星期日,2025年,2月5日高耦合问题第98页,共173页,星期日,2025年,2月5日低耦合解决方案第99页,共173页,星期日,2025年,2月5日高内聚模式高内聚模式是一个评价模式。内聚是软件设计中的一种基本品质,内聚可以非正式地用于度量软件元素操作在功能上的相关程度,也可以用于度量软件元素完成的工作量。指导原则是:分配职责可保持较高的内聚性。第100页,共173页,星期日,2025年,2月5日低内聚问题第101页,共173页,星期日,2025年,2月5日高内聚解决方案第102页,共173页,星期日,2025年,2月5日第13讲面向对象设计方法面向对象详细设计案例分析第103页,共173页,星期日,2025年,2月5日面向对象详细设计面向对象详细设计的目的就是不断精化设计类领域模型也称为概念模型、领域对象模型和分析对象模型。领域模型的精化对类图和交互图的精化起了至关重要的作用,也是设计个良好系统的关键。使用泛化、特化、关联类、时间间隔、组合和包等概念精化领域模型。第104页,共173页,星期日,2025年,2月5日泛化和特化泛化是在多个概念中识别共性和定义超类(普遍概念)与子类(具体概念)关系的活动。例如在POS机系统中CashPayment,CreditPayment和ChequePayment。在领域中识别父类和子类是一个有价值的活动,这样可以使我们对概念有更概括、精炼和抽象的描述。第105页,共173页,星期日,2025年,2月5日POS机系统中Payment第106页,共173页,星期日,2025年,2月5日定义概念超类和子类概念超类的定义较子类的定义更为概括或包含范围更广。例如,在POS机系统中,考虑超类Payment和它的子类。将概念类划分为子类的动机有:子类有额外的有意义的属性;子类有额外的有意义的关联;子类概念的操作、处理、反应或使用的方式不同于其超类或其他子类,而这些方式是我们所关注的;子类概念表示了一个活动体,其行为与超类或者其他子类不同,而这些行为是我们所关注的。泛化和定义概念超类的动机:潜在的概念子类表示的是相似概念的不同变体;子类满足100%准则(即概念超类的定义必须100%适用于子类,子类必须100%与超类一致。);所有子类都具有相同的属性,可以将其解析出来并在超类中表达;所有子类都具有相同的关联,可以将其解析出来并与超类关联。第107页,共173页,星期日,2025年,2月5日Payment类层次划分第108页,共173页,星期日,2025年,2月5日关联类原则:在领域模型中,如果类A可能同时有多个相同的属性B,则不要将属性B置于A之中。应该将属性B放在另一个类C中,并且将其与类A关联。这样就得出一个关联类C。在POS机系统中,授权服务给每个商店分配一个商业ID,商店发送授权服务的支付授权请求需要商业ID标识商店,商店对于每个服务有不同的商业ID。Store可能有多个merchantID值,所以
原创力文档

文档评论(0)