Maison >développement back-end >tutoriel php >请教将现有的系统改成面向对象的思路
我在学面向对象开发,我想把现在的进销存系统改成面向对象的形式,请教各位大侠应该从哪里开始,可否给一个思路呢?
能用则用吧,别瞎折腾了。
要面向对象,直接开发一个新系统吧。
能用则用吧,别瞎折腾了。
要面向对象,直接开发一个新系统吧。
我是在学面向对象的思想,所以用以前做过的系统做练习。
不知道要从哪里开始。请各位给点意见。
第一步将数据库操作全部抽象出来
待完成并通过测试后在说第二步
能用则用吧,别瞎折腾了。
要面向对象,直接开发一个新系统吧。
+1 !
建议楼主把属性方法全列出来,然后就OK了
第一步将数据库操作全部抽象出来
待完成并通过测试后在说第二步
不大明白这么做的作用。为下面设计类做基础吗?
估计你常听到前辈说的一句话??不要为了OO而OO
这是什么意思,就是做OO要有OO的逻辑思维
说些本本以外的东西
人做事离不开时、地、人、物、事(英语所说的五个W一个H)
面向过程其实也是“面向对象”,只不过这个对象是时间,时间在程序中不能抽象出来,所以看上去就是无对象
面向对象就是能把可以抽象出来的东西作为对象
鉴于地、人在工作中大都是无差别的状态(自己想想为什么),所以往往把事、物作为对象
实际中,物(编程中即数据)是变化的,也是生产的目的,把它切分作对象也困难
那么对事切分(简单说就是工序)就成为目前人类思维方式最常见、最可行的??社会分工就是这样产生的
大道理说完了,怎么理解看每个人的思维(不一定人人都相同的)
回到具体的话题
面向对象就是把相同的过程组合成工序,把不同的工序切分为对象,然后再通过设计模式组合工序形成生产线
版主所说??第一步将数据库操作全部抽象出来
就是把数据库读写这道工序抽出来形成一个细化的对象,因为这个在学习面向对象是比较容易入手的
思想上排除形式,把相同的部分写成不变内容
连接、选数据库、发送SQL命令,获取返回??增删改查不是都这样么(相同的过程)
不同的只是什么库,什么命令,什么返回……那么就把不同的部分作为参数或可变属性就行了
类似的还有文件目录处理、格式转换、API等等
其实你熟悉哪个处理过程就可以先拿那个开刀写成类,不一定是数据库,版主说的是泛例,大部分人都是从数据库开始接触类和对象的,因为这个遇到比较多;我本人则是从一段xml格式处理开始接触php类学习的,因为我当年处理XML比较多
javascript/dom对象则是把物(dom元素或另看作文档控件)作为对象,事(event)作为方法的思维
因为javascript多是事件触发,不像php这些有序执行
看起来挺抽象的。不好理解。
其实也很简单
比如你的进销存系统,他是由两大部分组成的:
1、被操作的数据流
2、实现管理的业务逻辑
所以可以用数据库类将数据操作部分抽取出来,无非就是插入、查询、修改、删除。而这些动作是公共的,无论是什么系统都是需要的(进销存系统只需要前两个)
看起来挺抽象的。不好理解。
这个东西一旦用文字描述就抽象了,还是慢慢理解吧,大部分人都免不了花时间的
说的直白点又怕误导了你,我最初的理解就是把一大堆function组合起来,哈哈,这个理解有严重问题,请无视
我还是多看点书和例子吧。理论和实践一起。谢谢各位的解答。