用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6692|回复: 14
收起左侧

请教:模型和类的区别

[复制链接]
发表于 2009-3-30 19:25:50 | 显示全部楼层 |阅读模式
这几天一直在用CI做系统的整体设计。表格类我是自己写的(CI的表格类库不太符合我现在的项目要求),本来我是作为一个模型设计的。后来再翻翻手册,发现手册是这样写的:模型是专门用来和数据库打交道的PHP类。感觉把表格的类作为模型有点违背模型的原本意图了。所以我又改成了类。感觉运行方面类和模型都差不多。
除了模型专门用来和数据库打交道之后,真不明白CI里面的模型和类到底有啥区别?或者用途有啥区别。也不确定我把表格作为类就一定正确。请高人指教~!谢谢!~~
发表于 2009-3-30 21:57:21 | 显示全部楼层
本帖最后由 moorland 于 2009-3-30 21:58 编辑

模型是专门用来和数据库打交道的PHP

所以也就是说: 模型也是类!

你可以把你的表格类做为libraries使用...
发表于 2009-3-30 22:56:09 | 显示全部楼层
一般来说,应用的业务逻辑放在模型中。MVC 在 CI 中并没有特别严格的限制。
发表于 2009-3-30 23:12:25 | 显示全部楼层
2楼的说法不怎么好。  在CI里模型确实是由一些类构成的,但其实它们并没有直接的联系,模型即M,它只是一种开发模式的一部分,即模型-视图-控制器  里的一部分。数据层,业务逻辑,视图分离的,便于开发和维护的一种开发模式。  而类是面向对象编程语言里的一个重要概念,所以不要孤立的去看它们的区别,一个是开发模式的里一部分,一个是OOP语言里的重要概念。个人见解,见笑了
发表于 2009-3-30 23:43:22 | 显示全部楼层
2楼的说法不怎么好。  在CI里模型确实是由一些类构成的,但其实它们并没有直接的联系,模型即M,它只是一种开发模式的一部分,即模型-视图-控制器  里的一部分。数据层,业务逻辑,视图分离的,便于开发和维护的一种 ...
浪迹天涯 发表于 2009-3-30 23:12


"模型是专门用来和数据库打交道的PHP类"
这不是我的说法,是手册里写的.
发表于 2009-3-31 13:35:49 | 显示全部楼层
LZ 写程序写的不要太死了。之所以用CI是因为在这并没有严格的限制。
不同的框加对数据层的理解是不一样的。
CI只是把model理解为数据库操作。
我个人认为。MVC是一种模式。写程序不能写死了。
在一些情况状下,也许把M层要做的东西拿到C里.只因为这样做更方便.
我认为CI是给我们使用的带的是更方便.更快捷.
我很喜欢那本书把CI称做敏捷的框架。真的很敏捷.
发表于 2009-3-31 13:49:36 | 显示全部楼层
而且.我觉得二楼说的对.模型也是类.
只是看你把你所需要的类定制在那层而已.
 楼主| 发表于 2009-3-31 15:34:15 | 显示全部楼层
多谢大家回复。关于模型和类我有了自己的一些见解。说出来希望大家指点。
个人觉得模型并不一定全部是跟数据库打交道的类。可以把一些公用的但是有一定规律的东西当成模型来使用。我昨天把表格从模型拿出来之后,把每个页的html拆分成头和尾两部分写成一个模型,那样每个页面加载头和尾的时候更方便,这些里面基本都没有和数据库打交道。但是我觉得这只是一种模型,而不能当成类。因为脱离了目前这个项目,它作为一个类的意义并不大。
而类他可以单独存在,放到另一个项目中一样适用,就像之前我完成的表格类一样。
总之,模型是为了快速开发(并非真正的敏捷开发)而存在,依靠某一必要的环境而生存。而类的生存环境相对更广泛一点。
一点愚见~见笑了~~
发表于 2009-3-31 23:04:25 | 显示全部楼层
"模型是专门用来和数据库打交道的PHP类"
这不是我的说法,是手册里写的.
moorland 发表于 2009-3-30 23:43

并不是说你说错了,只是说这样解释模型与类的区别,并不能很好的理解他们2者。  楼主也不用死死的纠缠在这里面来理解这2个东西。 呵呵
发表于 2009-4-1 00:42:08 | 显示全部楼层
9# 浪迹天涯

也许吧,但是你的解释,我更糊涂啦.呵呵

本版积分规则