面向对象的两个系统

面向对象有两个系统:一个是核心系统;一个是边缘系统。在领域建模中,分别叫控制对象与边界对象。我不赞成这种叫法。

我认为这不是面向对象的正确做法。面向对象的首要前提就是要对问题域建模。要抽象。并且要正确地抽象。

比如首先,问题域要有模型。

然后,要有适当的抽象,不能跟着需求死搬。

其三,要对需求进行结构化描述。不管使用什么手段。

很多人说,我总是在说,从来不干实事。我跟你说这世界就是这样,有说,有做,有说的有做的。世界就是由人们的说与做组成的。光说不做不行,光做不说也不行。也许有些人就是希望人家都不要说,全部他说了。其实这也不聪明,真正聪明的人他是不说话的。他就听你说,他就等你送苹果给他吃。所以你要不要说。让别人说。

第一个问题已经写过太多,不想再写。我也 是这方面的专家并且。第二条非常重要,因为它是对象系统升华的重要步骤。很多人都因为陷进面向对象的泥潭里出不来,没有时间走这一步。但是它却是重中之重。因为构建核心系统,必须具有一定程度的抽象,并且还要正确地抽象。

最后一条也不是不重要。恰恰相反,这是最需要最不可必的一步。如果说你没有时间的话,那么前面的就都不要做了,直接做这一步。有时候可以事半功倍。

埋头苦干的反义词就是第三条。

一旦你把需求做好了,你还有什么做不到的呢?

关心核心系统还有一件很重要的事情是,它必须足够抽象SO THAT不会融入半点平台、环境相关的东西。它是绝对抽象的,绝对领域相关的,它是所有平台兼容的。哪怕是换种语言、换个平台你一样可以很快就把它拿出来。这就是你核心系统,因为它是“你”的。

关于开发工作的定义,要看你是哪个级别的程序员。核心级别的程序员肯定是不管具体实现的,顶多看看你做的工作。他们只管抽象,抽象,抽象。为系统建立正确 的抽象是一个非常艰巨以及不可能的任务。这个任务有时候比需求分析、语义定位更重要。因为它涉及到系统的长期价值与稳定性。涉及到系统的投入。一个正确的抽象可以用几十年,一个错误的只能用几个月,你去算里面的成本吧。这就是为什么那印度程序员总是跟我说,他们印度只有大公司才用面向对象。因为大公司才有大项目,才会需要它。小公司要它有什么用?小公司要什么都没用。

 

 

 

 

 

你可能感兴趣的:(面向对象的两个系统)