错误的面向对象和分类带来的悲剧
2010-07-24 17:14
246 查看
最近写了个程序,题目是这样的:
做一个名片管理系统,实现存储,修改,删除,最关键的是能方便的搜索。(提供多种搜索方式)
提示:
名片素材在名片管理.rar中,可作参考。
要求:
用类实现,用集合存取。
如果实现本地存储可以调用
这个系统要求用面向对象去做。一看就知道,名片一定是要定义个类了,每个名片都有电话,传真,公司名称,公司地址,网址,邮箱等,这些都是卡片的属性,有的属性可以空,这样就可以new出一个个不同的卡片对象了,放在集合中进行操作。于是我就定义了一个卡片类,可我总觉得一个类有点少,就像在定义一个类,呵呵,于是悲剧就开始了,我定义了一个Incard类,让它表示card里面的条目;怎么解释这个incard呢,我当时想既然是card 里面的条目,就把电话,传真,公司名称,公司地址,网址,邮箱等都定义成了incard的里面的属性了,而card类只剩下cardname属性了;
大体如下:
哎,就不能为自己做的错事去找理由,要想找理由怎么都能找到。当时我给自己错误的理论解释的还蛮有道理,结果做起项目来,刚开始还没感觉啥,等对数据操作时才感到一开始就没定义好类,也没对面向对象理解好。数据的操作是既不能在Card中更不能在Incard中,因为你怎么去解释呢?没有合理的解释。都做了一半了,没办法只能做下去了,结果还是做出来了,但怎么都不爽,做得时候不爽,现在回头看更是没法看了。当然项目是要抽时间重新写了。
经过这次深刻的教训,我认识到C#的面向对象是站在人处理事务和认识事务的角度去做项目的,编程应该有好的思想和习惯,面向对象的思想就是好的思想,因为只要你分析透了问题,搞清楚了要操作的各个对象,归纳好了类,所有的项目都可以看作一个了(只是他们的大小不同),剩下的就是实现方法,看基本功了。
做一个名片管理系统,实现存储,修改,删除,最关键的是能方便的搜索。(提供多种搜索方式)
提示:
名片素材在名片管理.rar中,可作参考。
要求:
用类实现,用集合存取。
如果实现本地存储可以调用
这个系统要求用面向对象去做。一看就知道,名片一定是要定义个类了,每个名片都有电话,传真,公司名称,公司地址,网址,邮箱等,这些都是卡片的属性,有的属性可以空,这样就可以new出一个个不同的卡片对象了,放在集合中进行操作。于是我就定义了一个卡片类,可我总觉得一个类有点少,就像在定义一个类,呵呵,于是悲剧就开始了,我定义了一个Incard类,让它表示card里面的条目;怎么解释这个incard呢,我当时想既然是card 里面的条目,就把电话,传真,公司名称,公司地址,网址,邮箱等都定义成了incard的里面的属性了,而card类只剩下cardname属性了;
大体如下:
哎,就不能为自己做的错事去找理由,要想找理由怎么都能找到。当时我给自己错误的理论解释的还蛮有道理,结果做起项目来,刚开始还没感觉啥,等对数据操作时才感到一开始就没定义好类,也没对面向对象理解好。数据的操作是既不能在Card中更不能在Incard中,因为你怎么去解释呢?没有合理的解释。都做了一半了,没办法只能做下去了,结果还是做出来了,但怎么都不爽,做得时候不爽,现在回头看更是没法看了。当然项目是要抽时间重新写了。
经过这次深刻的教训,我认识到C#的面向对象是站在人处理事务和认识事务的角度去做项目的,编程应该有好的思想和习惯,面向对象的思想就是好的思想,因为只要你分析透了问题,搞清楚了要操作的各个对象,归纳好了类,所有的项目都可以看作一个了(只是他们的大小不同),剩下的就是实现方法,看基本功了。
相关文章推荐
- 对象和数据库的天然阻抗(越抽象越灵活(容易变化,变化带来的损失小)越具体越固定(不易变化,变化带来的影响范围广损失大)) 【面向对象在方法上与面向过程对立,在数据存储上与关系型数据对立,抽象与具体】
- php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
- 面向对象_成员方法的分类及使用
- 一个程序员的爱情:面向错误的对象
- 面向方法、宏定义、dll库、面向对象给程序灵活性带来的好处
- 原生javascript难点总结(1)---面向对象分析以及带来的思考
- ExtJs面向对象错误
- 被错误估计的面向对象
- php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
- PHP面向对象错误处理笔记
- java学习日记_24:面向对象之成员方法的分类和运用。07.13
- (四)PHP面向对象理论4---异常和错误处理
- 04_php面向对象-错误调试-异常
- 面向对象之数值的悲剧(8月28日会议有感) 推荐
- 学员会诊之01:那些典型的面向对象错误
- 28-面向对象图像分类(城市信息提取)
- Java软件低级错误(十 六):使用包装器对象带来的低效问题
- 面向对象设计模式的原则与分类
- 小菜和大鸟的编程故事之一:活字印刷-面向对象思想的先驱
- 黑马程序员-面向对象深入了解