《domain model的延伸讨论》 http://www.javaeye.com/topic/57075
robbin试图用两个例子来支撑其观点似乎太过牵强!
1. ruby的代码中是domain model直接包含了操作集合的代码,java的理念则不是如此。用来比较优劣是否妥当暂且不说,首要的问题在于:domain model理念是哪个?是允许一个对象包含自己的集合操作还是不可以?
我以为目前并没有定论。
退一万步说,就算是允许,那么java可以参照的同级别的语言是有些ADO.NET的C#(C#是可以和ruby在ActiveRecord可比的),java想做不难!
再次,允许是 ...
Interface play as Placeholder, without any class implement it
Author:Anders小明
有个这个题目是在ApectJ的应用,以及博客园子中一个blog讨论什么时候用接口(一个很古老的话题)。
接口作为一种重要的抽象能力,重要意义在于:
模型上看:接口代表做什么,而实现表示怎么做!
在框架上:接口代表稳定,而实现代表多变!
在语言上:接口代表0,而实现代表1,通过对象类型消除if…else…。
(这段话我<<Domain Model:业务流程的进一步分析2>>提过 ...
园子的忘却之都发了一文,大意说是目前OOP感觉不太对,原文如下:
http://www.cnblogs.com/gamix/archive/2006/11/26/572580.html
这里给些我的想法:除了实体对象,还有一类我称为流程对象的。
其实在现实中,新增Employee从来就不是HRUser可以决定和完成的,HRUser也只是发起一个新增Employee的流程。这个流程可能需要其它的系统的User来批复和支持。
在系统中,发起新增流传的动作,更常表现为HRUser可以通过web提交一个请求。当然这动作放在HRUser对象中,显的很奇怪。因为在现实中,也是HRUser填写个 ...
(注:最早发在blog上,不过没有讨论,一个大概是我自己没有描述清楚,一个限于blog的形式吧。转到这里来看看)
先看下Booch对面向对象分析和设计的经典论述:
OOP:面向对象编程是一种实现方法,程序被组织成对象的协作集合,每一个对象代表某个类的实例,对象的类是通过继承关系联合在一起的类层次中的所以成员。
OOD:面向对象设计是一种设计方法,它包含面向对象的分解过程,以及一种表示方法,用来描写设计中的系统的逻辑模型与物理模型,以及静态模型与动态模型。
OOA:面向对象分析是一种分析方法,它以可在问题域的词汇表中找到的类和对象的观点来审视需求。
经典是经典,不过总是不那么容易实践,我自 ...
FP不是一个什么全新的概念,在lisp等语言中被广泛应用,其设计方法向我们描绘了一个美好的世界,不过在OO的世界里应用却还是要费一些力气的。为了更好的应用FP,需要学习一下现有的实践。 一、回顾一下函数式编程的几个特性:1. 闭包计算和高阶函数。 函数本身是first class对象,闭包是起函数作用并可以像对象一样操作的。 高阶函数是可以接受一个函数为参数,并可以返回一个函数。 2. 延迟计算(lazy evaluation) 不是在函数绑定时计算,而是在求值时计算。 3. 递归的计算机制 4. 引用透明 同样的输入返回同样的结果,与上下文无关 ...
将两个模式放在一起是因为无论是role还是product:
不仅仅是体现了OO的SRC原则,当一部分逻辑够复杂时,就分离出去成为新层次。
而且在于,我认为在一些情况下,责任模式是合同模式的一个特例。
第一个是责任模式。
也许更应该陈作party模式。在这个章节中,详细讨论了party,hierachy,以及与party相关联的概念,包括address,责任。
在party模式中,一个party的责任是由他所在hierarchy和role构成的。
同时责任又被具体化为操作范围:由一些term(借用了合同一章中的term)或者一系列term组成的。
如同观测和测量模式一样,这些ter ...
将两个模式放在一起是因为他们有些共同之处。从行为上看他们都会在业务操作中额外记录一些数据,并且这些数据都和时间有关。
第一个是帐目模式。
一个常见的帐目的应用是:业务日志。如保险业务系统中对代理人的每一次信息变更,除更新主表外,都会在对应的日志表记录变化的属性,时间,以及变化类型(如是基本信息变更,还是职级变动,还是部门调动等)。
备用帐目的一个场景是:业务分析。如保险公司对于收到的每一笔保费,都会根据一定规则计算出相关代理人的佣金,新生成的帐目的due date就是该保费的发生日。
汇总帐目:业务分类统计。对帐目进行分类汇总。
第二个是观测和测量模式(第2,3章)
应用最广泛的是 ...
我以为分析模式一书的绪论是最重要的,因为它讨论了分析本身。
既然是分析模式,那么首先要弄清出什么是分析,目标和手段。
1.分析的目标是给出一个智力模型(mental model)
2.分析的原则是面向对象的建模原则
3.分析的手段是:显示的把模型分解为知识级和操作级(explicitly divide a model into operational and knowledge levels)。
并建立起两者的映射(第二章)。
martin说它是重要的建模原则,事实上在整个《分析模式》一书中,martin用它来分析讨论,因而我更愿意把它看做是工作方式。
同时,这是《分析模式》一书 ...
面向对象,嗯,是个老话题了。
书店了关于面向对象对象的多不盛数,面向对象的框架一个又一个,更有大名鼑鼑的设计模式。。。
在看了无数本这样的书,并学习了无数的框架,同时在工作中广泛应用了的设计模式及其变种;
熟练的使用分层框架,而不是一个jsp包打天下;
熟练的使用抽象和多态,而不是难看的if...else;
小心翼翼的贯彻各个面向对象的原则,并写着大量的unittest,
开始沾沾自喜的也以为自己真的懂了面向对象。
但是,(如果没有但是。。。)随着工作越久发现自己的认识其实很浅。
自己所接触到,或者说是自己所体会,思考,以及应用的其实只是面向对象的实现技术部分,
而面向对象分 ...
- 浏览: 64207 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
NEWS: Microsoft DSL Tool ...
这不就是Ruby,或者更确切的说,Groovy嘛
-- by halfmile -
从EAI到SOA
wwwtom 写道呵呵,前几天还看有人说 esb上架构SOA是有害的,今天就看见 ...
-- by richmond -
从EAI到SOA
呵呵,前几天还看有人说 esb上架构SOA是有害的,今天就看见有人跑出来说 “E ...
-- by wwwtom -
从EAI到SOA
现在的soa门槛太高 入门比较困难 要了解 soap wsdl 等乱七八糟的东东 ...
-- by xly_971223 -
从EAI到SOA
很多人还以为SOA只是概念炒作,其实,国内外大多数主流厂商都已经推出SOA概念的 ...
-- by JavaInActoin






评论排行榜