Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

面向对象CMS构架浅谈

[复制链接]
aiview 发表于 2009-6-3 15:07:55 | 显示全部楼层 |阅读模式
本帖最后由 aiview 于 2009-6-3 15:32 编辑

首先我们我们大胆的假设,如果让你来开发一个CMS你如何来构架,思考片刻在往下看。

面向对象思维可以把问题想像很直观、很简单。例如,把把大象放到冰箱该怎么做,答案很简单,打开冰箱,把大象放进去,关上冰箱门。

现在应用到CMS上来,频道我们可以理解成一个对象,他包括栏目属性。//就这样理解很简单吧

栏目同样是一个对象,它继承模型属性,可以改写模型对象方法。//就这样简单

模型还是一个对象,它继承基础模型(文章模型),模型可以共用一个接口。//看下面例子最合适。

文章模型{article}
id        //编号
subject        //主题
content        //内容
//以上属性供其他模型通用,作为公用属性

//以下属性供当前模型使用,作为私有属性
图文模型{picture extent article}
pic                //缩略图
picwidth        //缩略图宽度
picheight        //缩略图高度
picarray        //图片集

模型继承分两种继承方式,一种继承基类,一种继承其他模型,很灵活,具体处理因情况而异。

继承图片模型
下载模型 {download extent picture}
downloadaddress        //下载地址
platform        //平台

继承文章模型
下载模型 {download extent article}
pic                //缩略图
picwidth        //缩略图宽度
picheight        //缩略图高度
downloadaddress        //下载地址
platform        //平台

栏目改写模型方法,变为私有属性。

特色美食->图片模型
Subject        //菜肴名称

精彩图文->图片模型
Subject        //图文标题

一般分类不依赖模型,如美食分类:中餐,西餐,最好不归类于模型,用栏目来区分,以方便其他栏目通用,如果确实要这么做也只能新建一个模型继承父模型方式。
限定分类可以归于模型,如下载模型的适用平台,win,linux。

未毕
 楼主| aiview 发表于 2009-6-3 15:23:07 | 显示全部楼层
本帖最后由 aiview 于 2009-6-3 15:26 编辑

对分类这个问题,仔细想想归于栏目最合适。
这样一级栏目就可以了,不用在做二级栏目。

[栏目]特色美食=》分类:中餐, 西餐 , ...
回复

使用道具 举报

fzqsunk 发表于 2009-6-3 19:57:28 | 显示全部楼层
挺有见解滴,给你顶顶
回复

使用道具 举报

 楼主| aiview 发表于 2009-6-10 17:34:50 | 显示全部楼层
看了joomla构架,真的是设计合理,单独分 单元  和  分类适用于任何模型的关联,虽然默认也只有一个文章组建(我理解为模型)。

单元:可以理解为频道单元
分类:可以理解为栏目分类
回复

使用道具 举报

yibaika 发表于 2009-8-9 23:42:26 | 显示全部楼层
有点专业哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 06:53 , Processed in 0.023596 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表