您的位置:首页 > 编程语言 > C#

C# winfrom 中listview 跟新页面数据

2010-11-20 22:08 197 查看
如题: listivew 中拥有300条数据,我采用线程刷新数据库,并且更改listview 中的3列数据。
我觉得,如果从技术角度讲,抽象类和接口可以混起来使用的,你把抽象类里面的所有东西都定义成public abstract,不就是个接口?当然,C#支持多接口实现,但不支持多类继承。在c++这样的支持多继承的语言中,抽象类可以与接口等同。
但是,如果从面向对象的角度去看,抽象类和接口就不一样。接口描述的是“aaa具有bbb这种能力”的概念。就比如电子报警门,它首先是一扇门(抽象类),而且具有报警的能力(接口),于是就会是:
说“手机具有充电能力”跟说“手机是一个具有充电能力的东西”有区别吗?
过分强调这个区别,在设计时就是冗余了

过分强调这种区别,正好是因为不少人是先编程,然后才去附会设计问题。如果你搞很多种面向对象设计编程语言,你就很容易跳出某种编程语言对你的思想毒害,去抽象出更加高效而简洁的设计技术,设计时所用的概念只是指导而不基于于某一种编程语言。

关系密切的对象用抽象,不相关的类提供通用功能用接口

接口纯粹是为了多重继承而存在

在设计“电子报警门”时,它首先是具有报警能力的东西(因为我们独立设计了这个类),同时也还是门,这样定义又有什么不可以呢?
只是.net不支持直接了当地实现这种设计而已,于是我们才出现了class、interface、abstract之类的争论。但是这些都是编程,上的区别。如果我们使用根本没有interface的.net动态语言跟c#一起开发软件,难道就不能设计交流了吗?

其实编程时是很自由的!在c#编程时,我们可以把“报警装置”设计为类,这样就只好把单独搞个“门接口”了!也可以反过来!也可以全都是实现为接口。
在设计时,全都看作开放的类吧。设计时,你的任务是去定义其开放的属性定义、功能定义,测试其流程是否完备,判断类型设计用于继承和多态时否高效和严谨地扩展到大量具体类型。这时不必区分class和inteface。
当你编程的时候,脑子里至少会有着这张类型关联图,选择class或者intrface其实很自由。在vs的帮助下,你可以使用refactor功能“一瞬间”就从class中抽取出interface,vs给你自动产生代码。编程工具尚且如此自由,那么争论这里class还是interface的对错岂不是会引起很多编程者的派别冲突?

面向对象设计主要是为了领域专家(不一定知道编程知识的人)之间沟通,因此我的出发点是看看你有没有因为学c#就妨害了你学面向对象设计知识,而我此时刻意并不去涉及c#编程知识问题。
我相信一旦熟练进行设计,编程时才需要考虑的东西就可以自己很快理解,即使别人的“范例”是把设计跟编程混起来你也能看懂,因为你会透过class、interface看出设计者本质头脑中的类型关联图像。
编程语言规定你如何使用class、interface、abstract这些靠读语言编程手册和小例子就可以学会,而工程设计的知识才需要专门作为一个学科学一下。
sp1234是基于“先验现象学”的,认为“所有的现象本身都是由其他现象所奠基的”,所以理论上只要拆分足够的原子现象,就能组合表达出所有的现象

而另一派的观念是“还原现象学”,是“还原现实世界在人脑中那个映射”,“现实世界通过人脑以后”除了原始的模型以外,会附加上很多 人脑所赋予的“特性规则”

来源:NBA视频在线
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息