我们需要的不仅仅是具体的完成。[学习类、接口感想]

今天看到一个同事写了一段代码:
ArrayList a =new ArrayList;
Logitisc.Package p=new Logitisc.Package;
a.Add(p)
object h=new object();
Foreach (h in a)
{
    if (h==p)
     ///
  else
  ///
}

大吃一惊,他把一个(物流系统)包的对象存储在a这个arraylist里面去了,
我仔细一看arralist帮助发现,arralist支持将一个对象加入,
以前我一直以为只能加入string,现在才明白string也是一个对象的说法。
然后,他告诉为什么他要这么作,

因为一个包对象下面有小包,小包里面还有物品,
发货的过程就是,
把物品包装成小包,小包组合成大包。

比如:
库房 库房a=new 库房()
Package p=new Package();
goods g1=new goods();
goods g2=new goods();
p.add(g1);
p.add(g2);
库房a.add(p);

这就是一个库房保存物品的模型。

你看这样的过程通过对象描述多么清晰。

所以,一直有人提倡我们在定义模型的时候,抽象一些,再抽象一些,
首先,不要考虑实现,一旦考虑实现后,就不可避免的纠缠在细节上面,
往往忽略对整体的考虑。


过程和对象的主要区别在于思想差异,而非具体完成的代码。

类是对应现实生活中的模型。
而且在完成类的定义的时候一定要按对象模型来定义,而不要局限语言的定义,
不要怕具体语言完成不了。
原文地址:https://www.cnblogs.com/king_astar/p/5671.html