在我们分析模型的时候经常会遇到不同类型的事物在某些特性上有共同点,比如,人和公司,他们都有地址,电话,电子邮件等属性,在分析模型的时候,我们可能得出如下的模型:
看到上述的模型的时候,我们是否会觉得模型中的冗余呢?很显然,我们会想如何将这两者融合在一起呢,我们伟大的Martin Fowler同志提出了Party模式来描述此种类型的模型。我们用一种通用(父)的类型来定义人和公司,这样,只需要在模型中指定该通用类型和联系方式的关系即可,而人和公司则从属于该类类型。其模型如下:
在这个时候,大家停下来想一想,第二个模型为什么比第一个模型更好,难道只是模型没有冗余吗?很显然不是。考虑下面的情况,当一个应用中和联系方式相关的实体除了人和公司外,还有团队,子公司,部门等的时候,在第一种模型中,我们应该如何描述呢,很显然第一种模型将会变得很复杂且混乱。而第二种模型,我们可以很容易增加一种或多种和联系方式相关的实体,只是这些实体都是属于Party的。
从上面的例子我们可以看出,使用Party模式会使得类似的模型变得容易扩展。
回过头来我们再看看Party模式:
Problem:
问题是什么呢?问题是当有很多元素拥有相同的特性,或拥有相同责任的时候,我们应该如何去分析和描述它呢?
Solution:
解决方案是,定义一种通用的类型,这些拥有相同责任或特性的元素都从属于这种类型,我们只需要描述该通用类型的责任或特性即可,这里我们将这种通用类型称之为Party(参与者)
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1375229
分享到:
相关推荐
《分析模式-可重用对象模型》是大师Martin Fowler的经典之作,该书深入探讨了面向对象设计中的模式与设计理念。作为一本权威指南,它不仅为软件开发者提供了宝贵的资源,还详细介绍了如何在实际项目中应用这些模式来...
### 分析模式-Martin Fowler #### 一、引言与概念模型 《分析模式》是IT界大师Martin Fowler的一部经典著作。本书旨在为复杂的业务分析领域提供一系列实用且易于理解的设计模式,帮助读者更好地理解和解决实际问题...
责任模式是一种分析模式,源于软件工程领域,用于描述对象之间的责任分配和协作关系。这个模式主要是通过对现实世界中组织结构的抽象,将上下级之间的所属关系转化为责任关系,从而指导软件设计。在责任模式中,重点...
"Face-party"的盈利模式可能包括广告收入、增值服务收费(如高级滤镜、虚拟商品购买)、合作伙伴分成等。此外,未来还可以考虑数据授权或与其他品牌进行联名推广,实现多元化盈利。 6. 财务预测: 在初期,投资主要...
1. **责任分配**:包括Party(参与者)、Organization Hierarchies(组织层级)等模式,用于描述组织结构中的责任分配方式。 2. **观测与测量**:如Quantity(数量)、Measurement(测量)等模式,帮助开发者准确地...
4PL更侧重于提供物流信息咨询服务和高层次的物流人才培养,它们是供应链集成商,通过协调和整合供应链中的多个参与者,为企业提供端到端的解决方案。 总结来说,第三方物流通过专业化服务帮助企业降低成本、提高...
这类游戏通常包含多玩家互动、轻松娱乐的元素,旨在增强参与者的互动性和趣味性。可能包括猜谜语、答题、角色扮演等各种游戏模式,以适应不同类型的派对和人群。 在Android应用开发中,为了实现这样的功能,开发者...
2. **餐饮合作**:探讨与餐饮业者的合作模式,如提供定制饮品、联合促销或是举办主题活动。 3. **品牌定位**:分析雪花啤酒的品牌形象,以及如何通过这次活动强化或扩展其品牌故事。 4. **市场调研**:在活动策划...
在这个例子中,我们首先定义了两个实体模型 `Party` 和 `PartyGoer`,用于存储聚会相关信息及参与者信息。然后定义了一个处理程序 `EmailHandler`,该处理程序负责分批次发送邀请邮件。如果还有更多的参与者未处理,...
供应链管理强调的是跨组织的合作,包括供应商、制造商、分销商、零售商以及最终用户在内的所有参与者,共同致力于提升供应链的绩效。它涵盖了计划、采购、生产、库存、物流和退货等多个方面。 3.2 概念框架 3.2.1 ...
相关方可能会进行无关方不会参与的交易。例如,一个实体可能以成本价将其商品出售给母公司,而不会以同样条件出售给其他客户。同时,相关方之间的交易金额可能与无关方之间的交易金额不同。即使没有发生相关方交易,...
市场参与者需理解用户的具体物流需求,进行物流规划设计,管理物流运作、信息,以及不断优化服务方案。 【第三方物流服务产品开发】产品开发涉及服务的核心产品(基础物流服务)和附加产品(增值服务),如定制化...
同时,鼓励模式创新,发展多元化的农产品电商模式,如引入分享经济理念,打造农产品众筹平台,让消费者参与农产品的生产和销售过程。加强技术应用,提高农产品的科技含量,例如利用大数据、人工智能等技术对农产品...
第三方物流服务市场的参与者主要包括物流服务的提供者(企业)、需求者(客户)以及物流活动发生的场所。根据服务提供者的类型,可将其分为四类:以资产为基础、以管理为基础、以行政为基础和综合物流服务提供者。...
钱安川是腾讯搜搜研发管理组的领导,拥有超过五年的ThoughtWorks敏捷开发、咨询和培训经验,同时也是北京Open Party的组织者和主持人。他参与过的培训或咨询案例包括阿里巴巴、华为、爱立信、阿朗和百度等多家知名...
3. **舞蹈派对场景**:在“subclass-dance-party”项目中,可能定义了不同的角色类,如`Dancer`、`Musician`等,每个类都代表了派对中的不同参与者。例如,`Dancer`类可能有`dance()`方法,而`Musician`类可能有`...
### 电子商务时代的第三方物流分析 #### 一、第三方物流的内涵 随着信息技术的进步和网络的普及,中国的电子商务发展迅速,并已成为经济发展的重要趋势之一。在这个背景下,传统的物流运输企业面临着转型升级的...
大学生创新创业计划书是大学生在学术学习之余,为了锻炼自我、积累经验,探索个人事业发展的一种方式。这份计划书旨在利用大学生的独特优势,抓住社会需求,创造新的服务模式,以实现自我价值和社会价值的双重提升。...
1. **用例图**:用例图描述了系统与外部用户之间的交互,展示了一系列的用例、参与者和它们之间的关系,用于理解系统功能的需求。 2. **类图**:类图展示了类、接口、对象及其之间的关系,如继承、关联、聚合和组合...