建模原语:四象图

初稿地址:http://www.douban.com/note/164191021/

“模型、状态和行为特征、场景”和“四象图”,建模观的命名和立象。

建模原语:四象图

作者:achieveidea@gmail.com

命名:模型、结构特征、行为特征、场景(及其律)。

释义:
型,描述事物为平组时刻函数,蕴藏了同物相关的备实情。
特点,从模型上退出的如出一辙组时刻函数。特征分为两可怜接近,一近乎是结构特征,一接近是表现特征。
情景,模型凝聚相应的特征持续一段时间,描述一段时间内与模型相关的实情。场景被潜藏的组成部分规则、约定,称之为场景规约。

用法:
平等笔画一张,一横平直,四象顿生。
一象画景,三象画物,物于景中。
二象画形,四状打神,形神兼备。
万象入画,浑然一体,一目了然。

流淌:第一象限画景,即描述场景;第三情景画物,即描述模型。第二面貌画物之著,即描述模型的结构特征;第四象限画物之神,即描述模型的所作所为特征。

诸子百小:
假如您熟悉四色原型,DESC可理解为结构特征,PPT可知道也模型,Role可明白呢表现特征,MI可领略吧场景。
若你熟悉DDD,
VO可了解吧结构特征,Entity可理解啊模型,Aggregate可知道也行为特征,Service可领略呢场景,
Specification可以清楚吧场景规约。
一经您熟悉DCI,D可了解呢模型,C可以理解啊场景,I可以领略为表现特征。
设若你熟悉MVC, M可掌握啊模型,V可理解为结构特征,C可了解也表现特征。
倘您熟悉Web,HTML可清楚呢模型,CSS可掌握吧结构特征,JS可知晓啊表现特征,“页面”可了解也场景,HTTP可知道呢场景规约,
URI可明白吧场景的命名。
一经你熟悉Database,
Table可了解啊模型,View可理解为结构特征,Trigger可理解也表现特征,“增删改查”可领略吧场景,SQL(关系代数)可清楚为场景规约。

假使你针对上述诸子百下之说明一无所知,恭喜您!你恐怕将在最佳的状态下,快速控制四象图的精粹。

为有一个感觉的认,以录像为隐喻。Actor(演员)表示模型,Props(道具)表示结构特征,Role(角色)表示作为特征,Script(剧本)表示状况。电影《英雄》中的陈道明是范(演员),龙袍是结构特征(道具),秦始皇是行特征(角色),刺伤秦始皇有是景(剧本)。
末尾为会时有发生点儿只简单的代码案例(都自自Jdon道友提出的案例),让您起来感受一下四象图的意。

绽放课题:
1)描述原语的实际语言
静态语言,动态语言?命令式语言,声明式语言?Web给咱们建立了一个极其好之则,模型使用HTML描述,结构特征使用CSS语言描述,行为特征使用JavaScript描述,场景规约使用HTTP描述,场景下URI命名。事实上Android
UI就查获了Web的灵感,将UI的范与结构特征使用XML描述。

2)特征剥离的方式
万一特征及范使用同样种语言(比如Java),结构特征和行为结构的脱离需要提交额外的生命力,比如前者侧重“一致性”,后者重“交互性”。而以Web中,结构特征和行为特征的脱离易使反掌。一致性要求画面在一段时间呈现同样的品格,这将于用户可以的界面体验的必不可少基础。CSS的设计者之一Bert
Bos,解释了为什么CSS高度强调一致性。
Why “variables” in CSS are harmful?

3)特征凝聚的法子
范凝聚特征,最简便易行的法门就是赋值。当型有复杂性的结构特征时,可以运用“结构型”模式展开凝聚;当型有复杂性的行事特征时,可以用“行为型”模式开展凝聚。
凝聚特征的措施远不止赋值和GoF模式,比如JQuery中之selector、
Android中的R.java等等。

4)语言引擎的计划以及落实
在不同的“系统”或“层次”之间,可能得引入“语言引擎”这个定义,语言引擎的行事关键是和谐两只说不同“语言”的“系统”之间的音交流。比如Web应用之前端客户端说的凡JavaScript语言,后端服务器使用是外的言语(比如Java,
PHP等)。Ajax(Asynchronous JavaScript and XML,由Jesse James
Gaiiett发明)引擎负责两者的信交流。Ajax的本意是经过JavaScript启动发动机,发送Request,异步接收以XML的数目格式返回的Response。现在XML已慢慢让JSON取而代之,因为相对于XML,
JavaScript天生对JSON非常熟悉,是本人兄弟。

这里自己修改Ajax的意义使该有普适的义。A = asynchronous, J = jabber, A
= And, X = X。A
表示异步(同步是异步的特有状态),Jabber的意义是“快而含糊不清的话语”,X代表是不管三七二十一对话者将的语言。

当某个层次或体系说之言语(Jabber),对于其它一个层次或系(使用X语言)而言也许就是“快如含糊不清的语句(Jabber)”(我们大部分口听老外讲不纵这么?老外听我们说话亦然!),此时虽用一个“语言引擎”进行翻译,使两岸流畅地交流。语言引擎起点儿单干活模式:异步模式与共模式。

对此Web
UI来说,JavaScript为了协调的语能够吃服务器(比如采用Java编写的服务器)听明白,使用Ajax语言引擎告知由服务器自己说了什么,要举行啊。

对此Web
Server(比如Java编写的服务器),为了Database能够听清楚自己之言语,知道自己想使把什么,做来什么,也急需组织一个Ajax引擎。语言引擎如果足够智能,可机关切换工作模式。比如当协同工作模式下,与SQL数据库建立会话;在异步工作模式,与NoSQL建立会话。

语言引擎的设计者需要有精通数据库语言与服务器使用的言语,才可能建立通用的语言引擎。这个起能力的人口足考虑怎么落实,将那个开源奉献于社区。
我当下是无知道啊。语言引擎不是Object/Relation
Mapping,多多借鉴Asynchronous JavaScript and XML才是正道。

5)架构风格的计划以及落实
Roy Thomas
Fielding的博士论文《架构风格与基于网络的软件架构设计》是同篇极好的章。李锟、廖志刚、刘丹、杨光的翻译啊酷到位,感谢他们无私的贡献。我提出四象图的灵感部分(模型)源自于当下首论文对“资源”的概念,还有部分灵感(特征)源于曾经针对网“特征向量空间”的着迷。

Fielding在文中提及,“更准确地说,资源R是一个随时间变化的分子函数MR(t),该函数将日t映射到相当的一个实体或值的会师,集合中之值可能是资源的抒发与/或资源的标识符。”“REST对于信之中心抽象是资源。任何能够被取名的音信还能够作为一个资源。”

于四象图中,Resource犹如“凝聚特征的模型”; Representational
State代表“模型进入的现象”; State Transfer
Protocol代表“场景的律”;URI则是指向“场景的命名”,其承诺绑定恰当的语义。

四象图与REST描述有相似之“画面感”。
资源的表述性状态是一个相连一段时间的镜头,状态转移协议切换各个画面。模型进入状况持续一段时间的镜头,场景规约切换各个画面。两者之所以,具有相似画面感,是为模型与资源的定义都是时空函数,是一个乘胜日变化的概念。

心得及感受REST架构风格、四色原型、GoF设计模式,想象和那个提出者进行交流,聆听、汲取其明白,是自身提出“四象图”的源。Web是一个中标之REST架构,运行了几十年。碰触Web,与接触TCP/IP协议栈、信号与系统、香农的信息论、机器上一样,都让自己觉得激动,开阔了原本的视野。

搭风格的规划以及贯彻,我吗是只以持续上的新家。之所以列出这个课题,是坐自己认为该大主要,不可或缺。

6)程序的道:象数理
Niklaus Wirth提出公式“程序 = 数据结构 +
算法”,我道此公式少了一个物,必须显现出来,即“模式”。古人有“象数理”之说,“象”在先后中泛为“数据结构”,“数”抽象为“算法”,“理”抽象为“模式”。

“象”可以描述变量,过程,对象,函数,进程,事实,……,基于不同之“象”(数据结构),我们要思想相应的“数”(算法),发现“象数”之后的“理”。这是上前开放的课题,我们或许永远都无法找到稳定之真谛。

建模原语和次序的道之全过程,可以参考帖子《领域让设计的我表现》和《Hello,
World!
我心中的道》,但那片只帖子充斥着混乱与不当,有日得了解一下,没有工夫,看之帖子就是实行了。这些是自己提炼、加工后底结果。

提出“六非常开课题”,因为那同“四象图”在编造世界被之落实有关。有空我会写有特性凝聚的代码例子,作为参考。uda1341的宏图的著作好差不多了,可叫他普及一下顺序的道是课题出现的新方法论:Fact-Oriented
Programming。

但愿有再多的人,了解以及应用四象图,并针对接着提出的“六挺课题”感兴趣,去研究及缓解他们。

欢迎转载此文。最好注明原出处。
achieveidea@gmail.com

一个主干,两独重要。即坐“模型”为着力,以“特征”与“场景”为片独重点。

范,描述事物呢同样组时刻函数,蕴藏了与物相关的具备实情。
特点,表示描述观察事物之角度,主要出星星点点单角度:状态(结构)与行为(功能)。
状况,表示以什么角度观察和采用模型(模型凝聚特征),描述特定时刻外所有与物相关的实况。

MVC和DCI的提出者Trygve
Reenskaug提倡用可读性极佳的代码直接破获用户心中之范,我采纳了这个意见,同时以编辑原型时借鉴了四色原型及DCI的组成部分考虑。

此先陈述自己的有的思维和眼光,可能同有经典著的定义有出入,随后再次以代码贴出来。

1)领域是理所当然的,不因为人之心志为转移,但人口的于天地有所能动性,可以认识以及改造它。
2)领域模型是莫名其妙的,体现了程序员对天地的认识,是程序员心中对世界的素描。
3)用户需是莫名其妙的,体现了用户对世界的认,是用户中心对天地的素描。
4)领域模型需要捕捉和盛用户需求。领域模型与用户要求的干异常关键,下面展开来讲。

“用户需求”是指向世界的“素描”,用户的需要来对世界的“诉求”,这些诉求往往是深刻的,因为那来源于用户指向世界长期考察和动的涉,比打我们程序员,一般重复完整、更实地接近世界的真面目。我们对“用户需求开展素描”,就是“借鉴用户的可贵经验”,可以再快、更好地素描客观世界,这足以说凡是均等漫漫认识(未知)领域的捷径。但是当用户需不明朗或未鲜明时,我们需要跨越“用户需求”,对世界开展深刻的摸索,去寻求更鲜明的视角,对世界拓展勾勒。

另外,“用户需”不可知同于“用户”,捕捉“用户中心之模子”也非能够平等于“以用户为核心模型”,这是例外的定义,不能够忽视其区别。《老子》书中生只意:有之以为利,无的以也用。在此处,有之好,即成立世界模型;无的用,即盛用户要求。举些例子,一个海要作满一杯和,我们在打杯子时,制作的是拖欠杯子,即要管水倒出来,之后才会弄虚作假下水;再按照,一栋房屋如果住人,我们于打房子时,建造的房舍是拖欠的,唯有空的才会容乃人的容身。我们建立世界模型时也要用用户放模型之外,这样才能够包容用户之需求。

而今尝试提出同样效仿更浅的建模原语,来诠释我的领域建模观。

面前几龙,还打算于网的角度去讲四色原型(分析模式)、领域让设计(设计模式),发现这种做法或许会见比平淡,放弃了。

当今,结合隐喻的法子,看是不是会以双边说得通俗易懂,并且提供平等组领域建模的原语,作为分析、设计、实现阶段的通用语言。

大家先想起熟悉的镜头:
1)花木兰从战场胜利归来,辞去将军之职务,脱下军装,现发出女儿身。
2)花木兰战地上大胆作战,披上军装,行将军之职务,无人知晓是幼女身。

四色原型的叙说:戎装是Desc,花木兰是PPT, 将军是Role,作战是MI。
DDD的叙述:戎装是Value Object, 花木兰是Entity, 将军是Aggregate,
作战是Service。
DCI的描述:花木兰大凡Data, 将军是Interaction, 作战是Context。
生活化的讲述:戎装是“道具”,花木兰大凡“演员”,将军是“角色”,作战是“剧本”。

当方的剖析之上,提出四独建模原语:

状态特征(state feature), 别名特征(feature)。
范(model),别名实体(entity),事物(thing)。
表现特征(behavioral feature),别叫角色(role)。
容(context),别名服务(service)、活动(activity)。

范是小圈子的为主。
状态特征是打模型(model)上退的具有“一致性”的状态特征。
行事特征是自从模型(mdoel)上退的具备“交互性”的作为特征。
观中范将“剥离”的状态与行事特征重新“凝聚”起来,相互作用,完成任务。


采取当下套建模原语从新设计“图书馆”这个案例。

0) 工厂:CardFactory

1)模型: Libarary, Card, Book
2)状态特征:CardType、BookDetail

3)行为特征:BorrowedBook

4)场景:BorroweBook、BorrowedBookReturn、BorrowingIterm

范,将现实中极度中心的物本来映射到世界模型中。

状态特征的退出,看模型的一对属性是否具有“一致性”。上面的CardType,
剥离的起必不可少,但BookDetail则没有明确的事体需要,可以免脱离。

行为特征的脱离,看模型的局部行为是不是拥有“交互性”。BorrowedBook实际上并无代表“交互过程”,而是“交互结果”,但亦可反映“交互”特征,所以实现时不过这么表达。

场景:BorrowingTerm包含场景的搁条件、交互约束,体现工作规则。DDD的术语好像是则(Specification),是如出一辙种特别层次之重构。之前我几乎无意识地把“借阅规则”放在一块儿,看来是对准了。

介入场景时,如果模型符合场景的清规戒律,模型就见面凝聚剥离的特征—状态特征(根聚合)和作为特征(扮演角色),成为真正的“对象”,“对象”在彼此之间形成的涉嫌网络中传送信息(可使用事件驱动),完成任务。


小结一下建模过程:

1)从业务中将最中心之事物本来映射为世界受到的“模型”。
2)从“模型”上离出状态特征跟行事特征,剥离的骨干角度是“一致性”与“交互性”。
3)根据在场面中工作规则,“模型”重新凝聚剥落的“特征”,成为真正的“对象”。
4)“对象”之间互相“传递信息”,完成任务。


1)面向类(抽象的对象),不是当真的OO,
面向对象(静态的靶子),也不是真正的OO;类+对象+时间,才是真的的OO。
2)关系代数,关系之概念不是凭外键,外键只是外部对关系一个字段属性之牢笼而已,字段属性有死多种羁绊,外键只是内同样栽。
3)关系之数学描述是一个会合,在OO中,等价于“类及其具有目标的同”。关系运算,即对“关系”的操作,是真的意义上针对“对象”的操作。
4)目前底数据库没有时间观,目前的OO也并未时间观,但是涉及代数,有!
5)GoF设计模式没有时间观,其灵感源于《建筑之原则性的志》,建筑是一个空中法,永恒试图超越时,即追求特征未变性。
6)没有时间之OO世界观中,状态共享是并行的志;在发生时间之OO世界观中,状态共享只是平等种特例,消息传递才是相的道。
7)掌握并行编程,最好能操纵爱因斯坦底广义相对论,在情理意义与数学意义上深认识时间以及空间,如果未可知,也要是品尝去打听,因为互相
编程实际上是时空观在微机及的贯彻。
8)数学是一个壮烈之教程,是享有科目中最好“无为”的一个课程,为另外学科提供必要的家伙,可谓“利万物而未咋样”。不要错过批判数学思维,要失去批判那些对数学有误解与偏见的思量。因为“无为”,数学“无所不为”,被人封为“无冕之王”,功高震主,“哲学”的霸主地位岌岌可危。但“数学”本身并无思争夺“帝位”,是其的崇拜者,要管它们推向至尊的王位。“数学”的崇拜者,想经过叫“数学”登上托,来收获更多的荣耀和话语权,但忘记了“数学”崇尚“无为”。
9)比如,数学上一个矩阵,可以是同等积聚无意义之多寡的积,可以是平等轴图像的代表,可以是一个电路的叙述,可以是一个化学反应方程组的表示,可以是一个大网的讲述,可以是一个网的叙述,…
这便是“数学”,“无为”而“无所不为”。
10)我喜爱数学,但不是数学的崇拜者,更非思量透过给“数学”登上托,使和谐得更多之荣,因为“数学”根本未在乎是“宝座”,那是那崇拜者自己心心的欲望而已。
11)我吧喜欢领域建模,也打算取一法建模原语。这个帖子,就是开举行这尝试,关于执行之细节,需要再次多的思辨与座谈,我会先勾勒有,抛砖引玉。

先期说说,一些关于以场面中范凝聚“状态特征”和“行为特征”的思想,以后会另行多之阐述。

1)在错综复杂的气象被,模型对状态特征的凝聚,可能用采用结构型模式;对作为特征的凝聚可能得动用行为型模式。
2)比如,使用组合以及修饰器模式去凝聚一些态特征;使用命令和观察者模式去凝聚一些行事特征。
3)模型的创造或者要利用创造模式,比如Card,使用CardFactory进行创办。
4)特征的创导为恐怕用以创造模式,比如行为特征(角色)在成千上万状况被仿佛时,就用使用“动态代理工厂”进行创办,控制特征类的数目的涨。

自我尝试提出的即刻套原语意图在“分析、设计、实现”三独号通用,分析人员、设计人员、实现人口好挺自然地理解它,使用她。

这里解释一下定义这套术术语背后的想想过程。

1、模型,是物的意思。但物之定义太常见了,不宜直接将来所以,就比如在REST中,使用资源是词去顶替事物,事物可看作别名。

这就是说为什么未挑DDD的Entity、四色原型的PPT或者DCI的Data呢?因为咱们是以开创同学建模原语,最基本之概念自然而同范有关,除了“模型”,我实际怀念不发双重方便的歌词汇了。模型,是建模的固。

2、特征,描述事物(模型)具有怎样的特征。特征既有着生活化的气息,也是一个于让各种课程大应用的术语,浅显而深厚。

准矩阵轮、系统论上,特征向量、特征值、特征向量空间是出现频率极高之用语,常用来描述各种系统。我们利用特征来描写、描述我们的范。这里DDD的Value
Object,
四色原型的Description,在直观上,在深刻性上,都多不苟是词汇。

3、场景,这吗是一个生活化的语言,需求分析时,经常会发生夫说法,有什么样工作场景。场景是同等种运动,但运动同物一样,太广了,只能当别名。

立三只词汇,我个人认为非常好,因为其既直观,又富有深刻性。

4、特征,分为状态特征和行为特征,代表从“状态”和“行为”两只维度去观察“模型”,它们是自从“模型”身上剥离出去的,除了她自身有着独立性和而复用性,更为重要的是若“模型”更为简单。

5、在万象中,“模型”凝聚和这此景有关的“状态特征”和“行为特征”,成为一个毋庸置疑的对象,与其余对象开展交互,完成任务。

立马套原语的数学描述。
1)模型,表示为同组时刻函数,包含状态特征及表现特征。
model = {f1(t),f2(t),…};
2) 特征,从模型的平组时刻函数中,提取相对独立的状态特征及表现特征。
state = {f1(t),f2(t),…};
behavior = {f1(t),f2(t),…};
3) 场景,在气象模型凝聚特征持续一段时间(如自t0时刻到t1时刻)。
context => model-state-behavior =
{f1(t0->t1),f2(t0->t1),…}。

借鉴四色原型的像思维,使用四个原语。
每当平等布置纸上画画一个四象图,一横平竖的笛卡尔坐标平面。
1)把世界被之核心事物映射到四形象中,放在第三象限,作为范;(可以上上绿色)
2)把世界被之政工场景映射到四形中,放在第一象限,作为气象;(可以涂抹上红色)
3)考虑有场景,将模型的所作所为特征剥离出去,放在第四象限;(可以涂抹上黄色)
4)考虑有场景,将模型的状态特征剥离出来,放在第二象限。(可以上上蓝色)

无极端相同,我的着眼点是盖“模型”为主导,以“特征”与“场景”为少个主要。拿好花木兰的例证分析一下。

世家耳熟能详的画面:
1)花木兰自从战场胜利归来,辞去将军的职,脱下军装,现发出女儿身。
2)花木兰战地上无所畏惧战斗,披上军装,行将军的职,无人知晓是女儿身。

浅析过程,设计过程,实现过程将表现高度一致。
1)很易辨认出“花木兰”是“模型”,放在“四象图”的老三象限,涂以绿色;
2)很易辨认识别在战场“作战”是“场景”,放在“四象图”的首先现象,涂以红色;
3)从“花木兰”这个模型身上剥离出“状态特征”,即“戎装”,放在第二象限,涂以蓝色;
4)从“花木兰”这个模型身上玻璃有“行为特征”,即“将军”,放在第四象限,涂以风流。

更分析一下图书馆是领域被之借阅场景,读者是未在这图书馆领域中之,读者是图书馆领域的使用者和观察者,是图书馆领域模型的用户。

1)图书馆、图书卡、图书,是“模型”,放在“四象图”的老三象限,涂以绿色;
2)卡底项目,表征“状态特征”,放在“四象图”的第二象限,涂以蓝色;
3)被借阅的写,表征“行为特征”,放在“四象图”的季象限,涂以色情;
4)借阅场景、借阅规则,是场景,放在“四象图”的首先想象,涂以红色。

“四象图”不同让四色原型的绘画方式,与UML的美术的角度差别还可怜。这是就套原语的“象”;如果持有一定数学常识,可以知晓这套原语的数学描述,即“数”;实际上为得以自“理”即纯粹逻辑的角度来分析这套术语,这个自正在乌黑较少,毕竟“理”隐藏在“象数之中”,要分析出,需要靠一些逻辑观并追究世界观,这恐怕会见要这套原语失去“亲和力”,所以小先不多说。

立马套原语对分析人员、设计人员、开发人员都拥有“亲和力”,甚至对于生都具有亲和力,容易了解,“四象图”,这个家伙,可以叫他俩几乎不用考虑(不思考是未可能的,只能说解放了平局部脑力)就得开展辨析、设计及落实。如果能领悟其数学描述,理解其偷的逻辑观,那当然再好,但非会见太影响“四象图”的使。

因此,“模型、状态和作为特征、场景”和“四象图”,可以说是对建模观的命名和立象,浑然一体而泾渭分明,强调了范的整体观和动态性,不像UML将模型割裂为接近、状态图、交互图、用例等等,而且UML的状态图及互动图不可知直接实现也代码,而状态特征和行为特征可以,两者其实是勿可知等价视之的。

四象图的整体性和动态性,体现于于是同摆图形象描述了世界面临恐出现的所有静态或动态的镜头;模型、状态特征、行为特征,横跨所有领域;场景根据工作规则(规约)选取模型,模型在此时此景内,凝聚了有关的状态特正、行为特征,进行合作,完成任务。

及四色原型看起特别像,但背后的思想却已经发生变化了。

1)这套原语的为主是坐“模型”为基本,不同四色原型或DCI以“角色”或“场景”为着力,是将“角色”以及“描述”看作模型的附属物。

2)状态特征和作为特征,是为有着独立性,从“模型”身上剥离。战场上的花木兰身上的“戎装”(状态特征)和“将军的职”(行为特征),是足以脱离出去复用的。戎装可以别人过,将军得别人当。

3)行为结果好据此来反映行为特征,行为过程为可就此来反映行为特征。角色是一个名词呀,能代表作为特征?实际上角色是定义也是表现结果呀。行为特征的描写方式,可以由此“角色”(行为结果),也可通过“(时间)函数”(行为过程)来描写。

4)场景是于一段时间内,模型根据作业规则凝聚相关的特性(披上军装(戎装不必然是当将军之红颜可穿过底),行将军的职)进行作战。

5)例子只是为形象说明,便于大家懂得。如果你省数学描述,理解起来应当就是不会见来啊困惑了。

6)忘记四色原型、DCI、DDD等琳琅满目、层出不穷的乐章汇吧,提出就几乎只原语的一个靶虽想消除这些buzzword,为大家腾出更多之时刻与生机考虑再优雅的技巧实现。

这不是角色,是一个毋庸置疑的靶子,角色是行特征的空洞。

型(花木兰)凝聚了状态特征(批上戎装)和行(扮演了将),成为一个无可争议的靶子(真正的靶子),在战场上开展作战。
匪是将(角色)在征,完整的叙说是一个分裂上戎装身为将的花木兰在打仗。

如若您将模型凝聚特征后的靶子,理解呢角色,实际上要因角色吗主导,还是停留在一个“抽象”的层系,在场面中,模型凝聚特征后变为一个毋庸置疑的目标,一个实地的性命。

卿说之简单独过程不平等:一个是为此来“刻画”特征,一个凡是意味模型“凝聚”特征的进程。

行事特征可以表示也一个类似(比如角色、比如事件监听器),可以象征也一个函数(比如function()
{}),
状态特征可以象征也一个近似(比如颜色、金额),也足以表示一个函数NoSQL(比如2t+3)。

特性可以起更多之表达形式,甚至我们还无亮堂的款式。

行为特征和状态特征的别不在于那于表现形式,在于从模型剥离出去的角度。

状态特征考虑模型有特征的“一致性”从“模型”上离;
行事特征考虑模型有特征的“交互性”从“模型”上退出;

状态特征和作为特征,都是范的特征,严格区别它们不是专门要,
如特征剥离从有限独角度都说得通,此时别是范的状态特征还是表现特征就是没有必要了。

特色剥离的中心对象发出半点单:1)复用状态与行事特征;2)使模型更简短。

流入,是范在气象凝聚特征的同栽艺术,状态和行事特征都得以。

至于模型在景中凝聚特征的方法,简单的得经过传参的办法。
以把状态特征及表现特征通过当范的组织参数传递进去。

还得设想下设计模式进行特色凝聚,比如通过模型绑定事件监听器来凝聚行为特征(观察者模式),通过做方式凝聚多单状态特征(组合模式)。

以前边,我都写了几许有关场景中范如何凝聚特征的思考。

结构型模式及行为型模式分别是范凝聚状态特征及行特征的行之有效工具,可以因气象特点,灵活选择。

于模型上离特征(分),模型凝聚特征(合)的计,是一个放之课题,我只是在倾向达成,考虑了只大致。比如剥离的角度,一致性、交互性;凝聚的方法,结构型模式、行为型模式相当于。

若可行使这套原语重新组织而的论坛代码。我以这边开个头。

模型:帐号、帖子、论坛
状态特征:帐号类型、帖子类型、帖子状态(置顶、锁定等)、论坛状态(主题总数,帖子总数,最新的帖子ID等)
行特征:
场景:发帖子、跟贴等

此地模型好像从来不明确的互动特征,业务场景相对单一,没有脱离的必备。
一经该帐号不仅仅可以为此在论坛,也得以就此当图书馆系统被,
那么帐号的所作所为特征就是可退出去,分成两像样,一个和论坛有关的,一个和图书馆系统有关的。

发现图书馆的酷例子,有问题,需要更正一下。

图书卡这个具体中之事物,在系统受到的照实际上是帐号。
图书卡是用户在切实中行使的家伙,帐号是用户在系上动的家伙。
故此把Card全部改变吗Account,就可了。
并且Account上之作为特征也堪退,如果Account的用途不仅仅以图书馆领域及,仅仅考虑图书馆领域时即便无欲剥离。

帖子和书籍基本上很相似。但还是发生分,帖子没有依赖场景的作为特征,图书也发(BorrowedBook)。

行事特征,一栽直白的诠释就是是范依赖让场景的用途,跟之前讨论的角色很一般,在概念行为特征时,角色是当其别名的,所以至于角色的认识本有效。

至于特征都勾勒了过多,下面再写一些有关场景的想想,算是终结吧。因为我已倾囊相赠,拿不闹还好的物了。

情景可分为两不行类:查询以及指令,前者是相模型及其特色,后者是给许多模子凝聚特征并开业务。

此情此景被范凝聚行为特征的计,可以是EDA,或所谓的Domain Events。

当下套原语也可从MVC的角度去解。MVC的M表示模型,VC可以掌握吧场景,V和C将气象分为两杀接近,V表示从今考察模型,C表示从控制模型。

由系统论的角度看,模型和特点(结构/状态与行事两只角度)是对网的中描述,场景时对系统的表面描述。

外部描述得从广大个角度开展分拣,比如输出、输入;比如查询、命令;比如视图、控制器;比如读与描写;比如视图和触发器;其实它们是相通之。

立套原语用于理解与习界面设计、数据库设计、领域模型设计都是好的。原语,承载的凡平等种植思维,一种看东西、看系统的构思,不见面于乎你用她来拘禁那种具体的物,比如界面、比如数据库、比如世界,因为它是建模原语,不仅仅是数据库、界面或世界的原语,只要你想用,就生出因此。

当时套原语可以从MVC、CQRS、DCI、四色原型、DDD、EDA、Domain
Events、REST等还还多我们还还免亮的角度去了解与运,原语本身不会见错过界定使用原语的角度,更非会见失掉界定原语具体的贯彻方式,因为这套原语背后的数学描述实际上是“无为”的。

网站地图xml地图