免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: dualface
打印 上一主题 下一主题

[学习] 单一入口应用程序概述 [复制链接]

bennie 该用户已被删除
21 [报告]
发表于 2005-11-28 13:36 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
22 [报告]
发表于 2005-11-28 13:42 |只看该作者
原帖由 dualface 于 2005-11-28 02:18 发表


是的,如果你确定只有几种可能情况,那么用 switch 肯定非常简单高效。

所以要根据应用场合来选择合适的设计方案和具体实现。


你会用到哪些 module,自己当然会知道。
多人同时开发,是在知道需要开发哪些 module 的情况下,和插件等等模块的开发是不同的。
如论坛,有页面显示,板块显示,管理等等,也许页面显示有很多功能,但是模块有哪些是确定的。

而且即使不用 switch,你也必须提供错误检查,比如说 index.php?act=right 是对的,index?act=rightt 是错误的,那么错误的时候做什么,怎么提示,也需要考虑。怎么来做,当然也用 if...else 等等,和 switch 也差不多了。

不限量的使用 sub-module 应该是在二级参数的时候,比如 index.php?act=page&do=print 这个 do 参数,可以用插件来实现,而插件并不是固定的,所以不限量,但是也需要提供错误检查。

论坛徽章:
0
23 [报告]
发表于 2005-11-28 13:55 |只看该作者
大家有没有考虑用RIA,我跑题了啊。
不过SPI是否是这种思想的变种呢。
我做了这个垃圾尝试。
因为我接触的比较少,所以大家不要笑话我啊。
http://blog.vetcafe.net/blog.php ... d=a_20051125_253534

论坛徽章:
0
24 [报告]
发表于 2005-11-28 14:33 |只看该作者
看来我语言表达有很大的问题,我是说discuz的第三方插件是使用统一入口,


原帖由 北京野狼 于 2005-11-28 13:34 发表



discuz没有任何版本是统一接口。
的确有做统一接口的产品,但是拿任何成熟的产品做比较都毫无意义,

先想清楚自己有没有能力把代码写到人家的水平?
再看看自己的系统是不是能做成一个成熟的产品,以后 ...

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
25 [报告]
发表于 2005-11-28 15:15 |只看该作者
原帖由 litie123 于 2005-11-28 13:21 发表


看来我语言表达有很大的问题,我是说discuz的第三方插件是使用统一入口,
..



是我没看清楚。
但是第三方插件是统一入口,和应用程序统一入口没有直接关系。

第三方插件是统一入口并不是就安全。
而且discuz的插件事实上功能十分有限。

论坛徽章:
0
26 [报告]
发表于 2005-11-28 15:52 |只看该作者
dz统一插件接口的目的就是让人写出规范的插件,从而安装更容易。这个跟软件结构没有什么关系。
说模块化也好,说设计模式也好,最终目的就是为了方便扩充,易于维护,而不是方便编码。
如果说人家告诉我,这个程序做完之后不用你管了,那我肯定上来就switch,加功能就case,我才不管以后谁来维护它,但是要是说这个程序未来一段时间都要由我来维护,那就要好好考虑考虑了

论坛徽章:
0
27 [报告]
发表于 2005-11-28 16:53 |只看该作者
原帖由 bennie 于 2005-11-28 13:36 发表
可以证明这根本就属于一种方法,唯一的不同是多一个参数及对这个参数的解析问题。
1、多入口:
common.php, a.php,  b,php
a和b都包含common。则a的实际代码是common+a,b是common+b。
2、单入口:必要参数mo ...



是的,其实就是多了一个 Dispatcher。

但多了这个 Dispatcher,可以将一些任务集中起来完成。这才是单一入口的主要好处。

至于是不是 switch ,不想再争论了。不同的场合用不同的解决方案。

论坛徽章:
0
28 [报告]
发表于 2005-11-28 16:54 |只看该作者
原帖由 bennie 于 2005-11-28 13:36 发表
不会以为单入口就是把所有的功能都写作一个文件里面吧?




这句话是关键。如果你认为单一入口,就是把所有的功能或者功能调用都放在一起,那只能说明你没有理解到什么是单一入口应用程序。

论坛徽章:
0
29 [报告]
发表于 2005-11-28 18:36 |只看该作者
单一程序入口,和单一参数入口,是两个不同的概念。
即使是:
view.php
print.php
...
这样的格式,也是可以使用单一参数入口的,也就解决了上面所谓的“安全性”的问题。

若是说优势和劣势,那纯粹是个人喜好。使用多个文件入口,或者是单一入口,都不存在任何独特的所谓优点。

没有任何一种方法要求比另一种方法更好的模块化设计

结构的简单和复杂,在于前期设计,以及代码实现,不是某一种模式可以解决的问题。

正如:你若是觉得,单一程序入口就是把全部东西写到一个文件,那我认为你不知道什么是单一程序入口;而若是你觉得单一程序入口比多文件要“更清晰”或者“更容易维护”,那么我觉得你不知道什么是程序设计。
bennie 该用户已被删除
30 [报告]
发表于 2005-11-28 19:02 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP