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

博客通过同事代码示例,展示将物流系统包对象存入ArrayList,说明ArrayList可加入对象,并非局限于string。还阐述发货过程的对象描述模型,强调定义模型时应抽象,注重整体,按对象模型定义类,而非局限于语言定义。
今天看到一个同事写了一段代码:
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);

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

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

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


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

类是对应现实生活中的模型。
而且在完成类的定义的时候一定要按对象模型来定义,而不要局限语言的定义,
不要怕具体语言完成不了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值