`
jiasudu1649
  • 浏览: 724592 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

分析模式 之 参与者(Party)

阅读更多

在我们分析模型的时候经常会遇到不同类型的事物在某些特性上有共同点,比如,人和公司,他们都有地址,电话,电子邮件等属性,在分析模型的时候,我们可能得出如下的模型:

看到上述的模型的时候,我们是否会觉得模型中的冗余呢?很显然,我们会想如何将这两者融合在一起呢,我们伟大的Martin Fowler同志提出了Party模式来描述此种类型的模型。我们用一种通用(父)的类型来定义人和公司,这样,只需要在模型中指定该通用类型和联系方式的关系即可,而人和公司则从属于该类类型。其模型如下:

 

在这个时候,大家停下来想一想,第二个模型为什么比第一个模型更好,难道只是模型没有冗余吗?很显然不是。考虑下面的情况,当一个应用中和联系方式相关的实体除了人和公司外,还有团队,子公司,部门等的时候,在第一种模型中,我们应该如何描述呢,很显然第一种模型将会变得很复杂且混乱。而第二种模型,我们可以很容易增加一种或多种和联系方式相关的实体,只是这些实体都是属于Party的。

从上面的例子我们可以看出,使用Party模式会使得类似的模型变得容易扩展。

回过头来我们再看看Party模式:

Problem:

问题是什么呢?问题是当有很多元素拥有相同的特性,或拥有相同责任的时候,我们应该如何去分析和描述它呢?

Solution:

解决方案是,定义一种通用的类型,这些拥有相同责任或特性的元素都从属于这种类型,我们只需要描述该通用类型的责任或特性即可,这里我们将这种通用类型称之为Party(参与者)



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1375229

分享到:
评论
4 楼 codepest 2013-07-31  
coffeesweet 写道
jiasudu1649 写道
很简单
我来举例子
小明 : 有一个公司电话(9999),有一个家庭电话(8888)。
           有一个公司邮箱zz@company.com,有一个个人常用邮箱,有一个个人备用邮箱。
           有一个公司地址(收货),有一个家庭地址(收货)。
小明有个同事小王
           有一个公司电话(9999),有一个家庭电话(7777)。
           有一个公司邮箱zz@company.com,有一个常用邮箱,有一个备用邮箱。
           有一个公司地址(收货),有一个家庭地址(收货)。

公司邮箱zz@company.com  可以供  小明 和小王使用
公司电话9999  可以供  小明 和小王使用
公司地址  可以供  小明 和小王使用

          
     


首先非常感谢您的回复。
按照您上面说的,我可以理解为人和电话是多对多的关系吗?那这个图为什么在person一端是“多”的连接符号,而在telephone number一端是“一”的连接符号呢?
其实我一开始是觉得这个图的连接符号画反了。。。



具体可以看Martin Fowler的《分析模式》,那个表示法是他自创的
3 楼 coffeesweet 2013-04-22  
jiasudu1649 写道
很简单
我来举例子
小明 : 有一个公司电话(9999),有一个家庭电话(8888)。
           有一个公司邮箱zz@company.com,有一个个人常用邮箱,有一个个人备用邮箱。
           有一个公司地址(收货),有一个家庭地址(收货)。
小明有个同事小王
           有一个公司电话(9999),有一个家庭电话(7777)。
           有一个公司邮箱zz@company.com,有一个常用邮箱,有一个备用邮箱。
           有一个公司地址(收货),有一个家庭地址(收货)。

公司邮箱zz@company.com  可以供  小明 和小王使用
公司电话9999  可以供  小明 和小王使用
公司地址  可以供  小明 和小王使用

          
     


首先非常感谢您的回复。
按照您上面说的,我可以理解为人和电话是多对多的关系吗?那这个图为什么在person一端是“多”的连接符号,而在telephone number一端是“一”的连接符号呢?
其实我一开始是觉得这个图的连接符号画反了。。。


2 楼 jiasudu1649 2013-04-16  
很简单
我来举例子
小明 : 有一个公司电话(9999),有一个家庭电话(8888)。
           有一个公司邮箱zz@company.com,有一个个人常用邮箱,有一个个人备用邮箱。
           有一个公司地址(收货),有一个家庭地址(收货)。
小明有个同事小王
           有一个公司电话(9999),有一个家庭电话(7777)。
           有一个公司邮箱zz@company.com,有一个常用邮箱,有一个备用邮箱。
           有一个公司地址(收货),有一个家庭地址(收货)。

公司邮箱zz@company.com  可以供  小明 和小王使用
公司电话9999  可以供  小明 和小王使用
公司地址  可以供  小明 和小王使用

          
     
1 楼 coffeesweet 2013-03-31  
关于这两个图,一直有个问题,

第一个图中的人和电话,地址,邮箱的关系,一个人有0或1个电话,0或1个地址,0或1个邮箱???一个电话号码有0或多个人?一个地址有0或多个人?1个邮箱有0或多个人???

这些关系在现在理解起来感觉很有问题,希望博主帮忙解释下。

相关推荐

    分析模式-可重用对象模型

    《分析模式-可重用对象模型》是大师Martin Fowler的经典之作,该书深入探讨了面向对象设计中的模式与设计理念。作为一本权威指南,它不仅为软件开发者提供了宝贵的资源,还详细介绍了如何在实际项目中应用这些模式来...

    分析模式-Martin Fowler

    ### 分析模式-Martin Fowler #### 一、引言与概念模型 《分析模式》是IT界大师Martin Fowler的一部经典著作。本书旨在为复杂的业务分析领域提供一系列实用且易于理解的设计模式,帮助读者更好地理解和解决实际问题...

    分析模式-责任模式

    责任模式是一种分析模式,源于软件工程领域,用于描述对象之间的责任分配和协作关系。这个模式主要是通过对现实世界中组织结构的抽象,将上下级之间的所属关系转化为责任关系,从而指导软件设计。在责任模式中,重点...

    创业计划书-APP移动应用-face-party-APP创业计划书

    "Face-party"的盈利模式可能包括广告收入、增值服务收费(如高级滤镜、虚拟商品购买)、合作伙伴分成等。此外,未来还可以考虑数据授权或与其他品牌进行联名推广,实现多元化盈利。 6. 财务预测: 在初期,投资主要...

    Analysis Patterns Reusable Object Models

    1. **责任分配**:包括Party(参与者)、Organization Hierarchies(组织层级)等模式,用于描述组织结构中的责任分配方式。 2. **观测与测量**:如Quantity(数量)、Measurement(测量)等模式,帮助开发者准确地...

    partygame-android:派对游戏 - 安卓

    这类游戏通常包含多玩家互动、轻松娱乐的元素,旨在增强参与者的互动性和趣味性。可能包括猜谜语、答题、角色扮演等各种游戏模式,以适应不同类型的派对和人群。 在Android应用开发中,为了实现这样的功能,开发者...

    2018雪花啤酒X party快闪店活动方案【餐饮】【品牌推广】.rar

    2. **餐饮合作**:探讨与餐饮业者的合作模式,如提供定制饮品、联合促销或是举办主题活动。 3. **品牌定位**:分析雪花啤酒的品牌形象,以及如何通过这次活动强化或扩展其品牌故事。 4. **市场调研**:在活动策划...

    App Engine Data Pipelines

    在这个例子中,我们首先定义了两个实体模型 `Party` 和 `PartyGoer`,用于存储聚会相关信息及参与者信息。然后定义了一个处理程序 `EmailHandler`,该处理程序负责分批次发送邀请邮件。如果还有更多的参与者未处理,...

    7物流运作模式--第三方物流.pptx

    4PL更侧重于提供物流信息咨询服务和高层次的物流人才培养,它们是供应链集成商,通过协调和整合供应链中的多个参与者,为企业提供端到端的解决方案。 总结来说,第三方物流通过专业化服务帮助企业降低成本、提高...

    基于供应链管理模式下的第三方物流管理研究.doc

    供应链管理强调的是跨组织的合作,包括供应商、制造商、分销商、零售商以及最终用户在内的所有参与者,共同致力于提升供应链的绩效。它涵盖了计划、采购、生产、库存、物流和退货等多个方面。 3.2 概念框架 3.2.1 ...

    36 Related party disclosures.pdf

    相关方可能会进行无关方不会参与的交易。例如,一个实体可能以成本价将其商品出售给母公司,而不会以同样条件出售给其他客户。同时,相关方之间的交易金额可能与无关方之间的交易金额不同。即使没有发生相关方交易,...

    第3章第三方物流业务开发与设计.pptx

    市场参与者需理解用户的具体物流需求,进行物流规划设计,管理物流运作、信息,以及不断优化服务方案。 【第三方物流服务产品开发】产品开发涉及服务的核心产品(基础物流服务)和附加产品(增值服务),如定制化...

    乡村振兴战略背景下农产品电子商务发展研究.pptx

    同时,鼓励模式创新,发展多元化的农产品电商模式,如引入分享经济理念,打造农产品众筹平台,让消费者参与农产品的生产和销售过程。加强技术应用,提高农产品的科技含量,例如利用大数据、人工智能等技术对农产品...

    第三方物流业务开发与设计.ppt

    第三方物流服务市场的参与者主要包括物流服务的提供者(企业)、需求者(客户)以及物流活动发生的场所。根据服务提供者的类型,可将其分为四类:以资产为基础、以管理为基础、以行政为基础和综合物流服务提供者。...

    敏捷项目管理

    钱安川是腾讯搜搜研发管理组的领导,拥有超过五年的ThoughtWorks敏捷开发、咨询和培训经验,同时也是北京Open Party的组织者和主持人。他参与过的培训或咨询案例包括阿里巴巴、华为、爱立信、阿朗和百度等多家知名...

    subclass-dance-party

    3. **舞蹈派对场景**:在“subclass-dance-party”项目中,可能定义了不同的角色类,如`Dancer`、`Musician`等,每个类都代表了派对中的不同参与者。例如,`Dancer`类可能有`dance()`方法,而`Musician`类可能有`...

    大学生创新创业计划书分析.doc

    大学生创新创业计划书是大学生在学术学习之余,为了锻炼自我、积累经验,探索个人事业发展的一种方式。这份计划书旨在利用大学生的独特优势,抓住社会需求,创造新的服务模式,以实现自我价值和社会价值的双重提升。...

    电子商务时代的第三方物流分析.docx

    ### 电子商务时代的第三方物流分析 #### 一、第三方物流的内涵 随着信息技术的进步和网络的普及,中国的电子商务发展迅速,并已成为经济发展的重要趋势之一。在这个背景下,传统的物流运输企业面临着转型升级的...

    2024年俄罗斯聚会用品市场机会及渠道调研报告Sample.pdf

    - **主要市场参与者**:Huhtamaki (Chinet)、Party City、Disney、Unique、Martha Stewart、Dart(Solo)等企业占据了市场份额的大约80%。 - **市场份额分布**:北美地区的聚会用品消费量最大,约占全球市场的31%;...

Global site tag (gtag.js) - Google Analytics