旅店管理系统开发过程中的插曲2--关于oo

原创 2003年07月23日 15:39:00

写完了“旅店开发系统种类的概述”之后真的觉得有些难以继续下去,整天对着自己的笔记本看一些文档,整理自己的思路,却无时无刻不被失业的阴影所困扰。很多次问着自己要不要坚持,很多次都没有答案,就这样迷茫的摸索,不知道自己将要走到何方。同时也不知道这篇文章的结局如何。不过无论结果如何,我都真心感谢支持我的同道中人,真心的祝福你们,还有我,在这条程序开发的遥遥之路上走好。

看了dove_young对于“旅店开发系统种类的概述”的评论之后,心里真是高兴毕竟有人在关注着我写什么,并且真正的关注其内容,最最重要的是能够告诉我自己的想法。真的希望每一位认真看我文章的人都为我写一些评语,哪怕说一句垃圾也好。对于设计和写作我都处于初级阶段,我希望能够听一听其他人的意见,而且现在我的情况时只能凭自己的想法来左右文章的去向。诸位对我文章的评价会起到几个人凑在一起开会研讨的作用。在这里再次感谢所有支持帮助我的人。

dove_young的留言中如下:
dove_young (2003-7-23 10:36:30) 

不管怎么样,我觉得你的这种设计方法依然不是 OO。我不太清楚你还记不记得那个 一个汽车四个轮子的经典入门示例??总之,OO 只是一种思想。任何时候都不要为了 OO 而 OO。 :-)
 
一下我就说一说我自己对OO的看法。我没有真正的学习过任何有关程序开发的课程,所有关于开发的知识都来自于自学,这样造成了我的知识结构是凌乱的并且没有过多基础,幸运的是我是学习管理的,善于组织整理这种凌乱的结构(也学不是学习得来的,因为要我讲如何管理我是讲不出的),从而使我不至于在程序开发过程中找不到北。而且我总是认为非科班出生也有它的长处,就是不局限于计算机领域思考问题,这样也许反而会突出奇兵,找出其他问题的所在。当然前提条件是你要喜欢学习,并且努力不断的学习。不再自夸,否则真得找不到北了。

对于OO的观念我只是从自己的观点去理解,看了关于汽车这样的例子也见了不少,但是我想几乎所有的人都能知道如何把一个汽车(经典例子中的)定义为一个类,但是如何把这种思想运用到真正的工程中却是我们实际要做的,由于汽车的例子过于典型,所以人们才常常使用这个例子,因为它有清晰的界限,但是如果把汽车真正的放在实际的工程中(比如汽车租赁业),未必像我们想象得那么简单,我们需要的不是汽车有四个轮子的属性,而是其他的属性,比如车牌号,行驶里程,型号等等,每一个对象只有放在它所处的环境中时才有意义,我们才可以对它进行设计。因为我们所要开发的系统是要在一定的环境下运行,只有有了环境我们所要定义的类才有意义。然而在现实生活中,我们看到的对象都是多方面的,也就是说一个对象处于多种环境中,比如汽车在制造业中是一个四个轮子(有的更多),有马达,装了油能走,但是在租赁业里我们不会关心这些问题。我们需要的是如何把一个对象从多环境中抽象出来,提取出在我们需要的环境下该对象表现出的特征。当然在经典例子中的汽车使我们对于对象有了很好的概念,而是清晰地印在每一个人的脑海了,汽车有四个轮子这就是他的特性,然而有几个实际的工程中用到了这一特性?

我也搞不清楚我是不是在使用OO的观点在开发这个系统,但是我在尽力向它靠近。也许这就是为了OO而OO吧,因为我实在找不出该如何把OO作为一种思想贯穿于我的系统,我只能说我要尽量的使用OO来开发我的系统。说一句有哲理的话很容易,但是做起来很难。

我希望我写了这么多没有使dove_young不高兴,好像很多都是针对他写给我的建议,我在这里绝对没有针对他的意思,我相信他是真心帮助我的,同时我也认为他是目前给为支持最多的人,我自认为是我不相识的朋友中作好的一个。谢谢你dove_young。

然而我们还是要把问题搞清楚。究竟怎样是OO。OO其实应该包括面向对象编程和面向对象分析(可能还有别的),前者是使用支持面向对象的语言将面向对象的设计程序化,其中包括对一些对象的使用,但是这并非是真正的OOP,至少我这样认为。我认为即使在面向对象的编程过程中我们也要时常提醒自己,我们使用的是面向对象的编程技术,我们需要使用这一技术来解决我们的问题,从而使我们的系统更容易维护,更容易升级。我相信包括我在内的许多程序员没有真正的使用面向对象这一技术,至少以前的我没有,我们只是解决一个个我们碰到的问题,并不在乎自己使用什么方法,这不是一个好的习惯。我在http://www.csdn.net/develop/read_article.asp?id=19657中使用一个例子说明用OO的方法解决实际工程中的一个问题,很简单,但是也许很多人都没有使用过,不是我们想不到,而是没有去想。

至于面向对象的设计,我自己本来不敢乱说什么,但是自从看了Allen Holub 的Building user interfaces for object-oriented systems之后我认为我有必要说一说自己的观点。Allen Holub提出了许多有悖与我以前学到的知识,但是他说得很有道理,至少我自己这样认为。那么我们现在来看一看我们现在要做的是什么,我们要做的是完成公司的工作,而不是去完成考试,两者的区别在于后者的答案是唯一的,而前者的答案是解决问题,没有标准答案,也许有些开发者的领导会要求使用某些方法,我认为这是限制生产力的一种表现,当然前提是程序员不会在一个普通的工程里面又重新实现了1+1的算法。我们可以选择任何一个人提出的理论来解决这个问题,只要我们喜欢这个人的思想方式。当然我们也需要考虑别人是否可以接受这一思维方式,但是如果愿意你可以发现自己的方式,是用自己的模式,前提是你有足够的时间和精力。我个人认为面对对象的设计就是从我们要解决的问题中抽象出对象,并能够使用这些对象真正的解决这一问题(验证过程)。正如我前面提到的,这一过程并非如我们说得这么容易,并且在这一过程中没有万能的模式,我们需要的是不断地思索与实践。从而不断的提高自己。

也许我会继续写一些关于设计的文章,希望大家能够支持,关注。

版权所有:idilent 网站转载请注明作者 其他转载方式请与作者联系(idilent@yahoo.com.cn)。

图书管理系统开发--问题解决

项目名称:图书管理系统 项目简介: 该系统主要面向图书馆的单机服务实体对象开发,适合中小型图书馆使用。此开发的“图书管理系统”项目的界面如图所示,主界面采用了多文档窗口,这样可以在窗      口...
  • wangfei5217
  • wangfei5217
  • 2014年03月23日 21:48
  • 1845

OO 编程基本功--(1)

OO编程基本功--(1)
  • csharp25
  • csharp25
  • 2014年08月18日 16:08
  • 1439

【零基础入门学习Python笔记003】插曲之变量和字符串|课习题答案

测试题 动动手 1.在不上机的情况下,以下代码你能猜到屏幕上会打印什么内容吗? 会打印:小甲鱼 2.在不上机的情况下,以下代码你能猜到屏幕上会打印什么内容吗? 会打印:小甲鱼...
  • SMF0504
  • SMF0504
  • 2016年03月09日 12:52
  • 1192

博客管理系统开发总结1(附代码)

(这是我和我室友开发的第一个程序。起初为了完成老师的作业。技术和设计都不是很好。)     开发目的: 这个系统起初设定是为了给老师使用,由于我们所有作业都发在博客院里,所以老师查看不是很方便。我们的...
  • zuhaoran
  • zuhaoran
  • 2016年09月18日 21:16
  • 242

OO思想名词解释

复习 OOA、OOD、OOP  OOA   Object-Oriented Analysis:面向对象分析方法   是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想...
  • superdog007
  • superdog007
  • 2015年10月10日 10:48
  • 1313

java学习之oo篇

这两天刚开始学习java语言,当看完马士兵讲的java中的面向对象之后,有种豁然开朗的感觉,内心充满了欢喜,因此,在这里跟大家分享一下自己的感受。 一、OO三大特性       1、封装    ...
  • china_e999
  • china_e999
  • 2015年04月01日 17:53
  • 535

asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作

/****** Object: 新闻表 Script Date: 2017/9/2 星期六 15:11:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_I...
  • guandebaokwstu
  • guandebaokwstu
  • 2017年11月07日 11:47
  • 112

OO设计五大原则

OO的五大原则是指SRP、OCP、LSP、DIP、ISP 1. SRP(Single Responsibility Principle 单一职责原则)  单一职责很容易理解,所谓单一职...
  • u014117094
  • u014117094
  • 2015年07月08日 23:13
  • 773

PHPOO知识点总结

 面向对象:认识或认知事物的一种方法--->类比 对象是类进行实例化后的结果 object -->物质,事物 类 -->抽象:属性-->外观   行为-->做的事(默认情况下的是缺少了该属...
  • ailxxiaoli
  • ailxxiaoli
  • 2016年07月09日 20:43
  • 844

java设计模之OO原则小结

一、松耦合的威力 观察者模式提供了一种对象设计,让主题和观察者之间松耦合。 当两个对象之间松耦合,它们依然可以交互,但是不太清楚彼此的细节。 关于观察者的一切,主题只知道观察者实现了某个接口(也就是O...
  • xiaokang123456kao
  • xiaokang123456kao
  • 2017年04月08日 17:35
  • 308
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:旅店管理系统开发过程中的插曲2--关于oo
举报原因:
原因补充:

(最多只允许输入30个字)