我们需要的不仅仅是具体的完成。[学习类、接口感想]
2004-04-09 22:23
471 查看
今天看到一个同事写了一段代码:
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);
这就是一个库房保存物品的模型。
你看这样的过程通过对象描述多么清晰。
所以,一直有人提倡我们在定义模型的时候,抽象一些,再抽象一些,
首先,不要考虑实现,一旦考虑实现后,就不可避免的纠缠在细节上面,
往往忽略对整体的考虑。
过程和对象的主要区别在于思想差异,而非具体完成的代码。
类是对应现实生活中的模型。
而且在完成类的定义的时候一定要按对象模型来定义,而不要局限语言的定义,
不要怕具体语言完成不了。
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);
这就是一个库房保存物品的模型。
你看这样的过程通过对象描述多么清晰。
所以,一直有人提倡我们在定义模型的时候,抽象一些,再抽象一些,
首先,不要考虑实现,一旦考虑实现后,就不可避免的纠缠在细节上面,
往往忽略对整体的考虑。
过程和对象的主要区别在于思想差异,而非具体完成的代码。
类是对应现实生活中的模型。
而且在完成类的定义的时候一定要按对象模型来定义,而不要局限语言的定义,
不要怕具体语言完成不了。
相关文章推荐
- 关于主流与非主流的感觉
- 原来Main()可以是private的...-_-b
- 今天的心情本来很好
- 用Asp.Net使服务器重启???
- 太多:)
- 看了一个下效果似乎很乱:)
- 旧的链接Web化
- 头帖,看到这里的氛围不错
- 柳絮飘飘~
- ada真的是第一个程序员吗?
- 如何成为一个程序员
- 转载:使用第三方软件的痛苦经历
- 睡吧,宝贝
- 两粒砂子的故事——这是我高中时看到的一篇文章,也是我网名的由来
- GLOOMY SUNDAY(黑色星期天)
- Masters Of Chant(教皇合唱团) 经典格林高利[转来的]
- PE format is very important,so learn it.
- 关于我在中华读书报发表的文章
- 关于我在中华读书报发表的文章
- What is the next BIG thing?