| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1429 人关注过本帖
标题:[经验]渚薰的ASP畅谈(八)ASP代码的封装心得☆☆☆
只看楼主 加入收藏
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
 问题点数:0 回复次数:11 
[经验]渚薰的ASP畅谈(八)ASP代码的封装心得☆☆☆
  • 很明显VBScript并不是一个面向对象的语言(VB也不是,VB只能算是一个可以提供事件驱动的语言)。在如今OOP技术泛滥年代(C++,Java,C#),似乎VBScript的力量太薄弱了。程序员为想设计出一个符合OOP标准的程序而废寝忘食(我曾经很讨厌VBScript, 它害我自己都讨厌自己的代码)。但,我们必须以一种伪方式来封装代码。显然,封装代码可以提高安全性,更重要的是可以的重用这部分代码,给网页开发带来空前的效率和可观的短期收入。
  • VBScript是有类类型的,虽然它功能并不算那么强大,但,可以帮助我们很好的封装我们的代码。
  • 基于类技术的封装
    • 类定义一般形式
      Class ClassName
      Private|Public 成员名1[,成员名2[,...]] '成员定义

      Private|Public Property Get|Let 属性名
      '属性定义
      End Property

      Private Sub Class_Initialize
      ‘构造函数定义
      End Sub

      Private Sub Class_Terminate
      ’析构函数定义
      End Sub

      Private|Public Function|Sub FunctionName (param1[,param2[,...]])
      '方法或过程定义
      End FunctionName
      End Class
    • VBScript的类功能少的可怜,除了能定义类之外其他什么都做不了了。继承,接口,嵌套,动态绑定,这些普遍OOP技术完全不支持。面对这样单纯的类类型,我们也要努力的把各个对象功能封装到类里去(比如,对于商务网站,主题是客户,针对客户的操作也很多,那就可以封装一个客户类,实现客户的各种操作,这种封装是很有效的)。
  • 基于编程思想的封装
    • 通俗点说,就是要做到一个函数能够运用到许多不同的环境中。比如,显示文章标题列表,大多数情况下,一个页面中,文章列表的样式会有点差别,不同页面中的文章列表样式也会有差别,那么就要把函数功能封装到,几乎可以应对所有情况。
    • 任何一个函数的所实现的功能必须做到完全的不可分。这里所指的不可分的确切含义应该说成是,可以用一个简单的单词来描述这个函数的功能。假如,一个函数,本来是做计算当前时间与原有时间的差的功能,但不凑巧的,它“买一送一”的附赠了打印计算结果的功能。之后也许,那个重用这段代码的程序员并不希望以函数预定的方式来打印计算结果,他只想把计算结果作为另一个函数的参数对待。这种情况下,它不得不重写这段代码,这是完全得不偿失的。同样,写这段代码的程序员,他某时也突然想重用这段代码,那时,他会发现,他不得不重新写一段与这段代码90%相同的函数来完成目前的功能。所以,记住,在写函数前,先给函数起个名字,只能是一个单词或者一个简单谓语句,不要再多了。然后努力不要节外生枝。
  • 基于ASP页面的封装
    • 一句话,ASP页面上,尽量少有ASP脚本代码。啊,那ASP代码放哪里啊?还是一句话,用函数编写各个功能后,集中放到一个inc文件中,include到页面里。Ok,接下去自己去体会了。什么?不知道怎么去体会,那么就去体会怎么“体会”吧(我经常和某人玩的一个文字游戏)。
  • ASP里能够做到的封装我总结的也就这么几点了。千万不要小瞧这些封装技术,如果你想在3天(页面一天,代码套用一天,调试一天)内,完成网站建设的话。

[此贴子已经被作者于2006-8-10 20:28:04编辑过]

搜索更多相关主题的帖子: ASP 面向对象 心得 代码 
2006-08-10 20:27
mz520888
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-7-25
收藏
得分:0 
好经验!多谢前辈!
2006-08-10 22:41
yzwt2004
Rank: 1
等 级:新手上路
帖 子:472
专家分:0
注 册:2006-1-18
收藏
得分:0 
太理论化了,能不能搞点实际的

想学 .Net 了
2006-08-11 15:30
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 
学到知识了 谢谢楼主拉

其实我很低调,只是你不知道...
2006-08-11 15:58
小狮兄
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-8-1
收藏
得分:0 
美男,能来个简单的例子吗?想学得规范点!3Q
2006-08-11 17:37
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
得分:0 
来个具体例子……基本上就要是整站代码了
原则就是一点,尽量少的在具体页面上写asp脚本代码
把脚本代码和页面文件分离开来
也就是,脚本代码可以用一个专门的inc文件存放,编写,然后具体页面中include这个文件

关键还是要学习OOP的相关知识,不要为了asp,而去接触编程语言
必须从一门完整的语言为起步

个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2006-08-11 18:38
ming206
Rank: 2
来 自:重庆
等 级:等待验证会员
威 望:3
帖 子:545
专家分:7
注 册:2005-8-2
收藏
得分:0 
动网论坛、动易都是用这些技术。这并不叫什么封装,这只是类似与封装。
并不是只能用INC文件来保存。后缀ASP、ASA、等都行(当然不当是HTML,那样做是瓜的)。
总之有一点,和写ASP组建一个样。我不如闭着眼睛写成组建(可以用VB,C++,JAVA等写,编译成DLL文件)
到服务器上注册就OK了,那才是真正的封装。组建不但安全,功能更加强大(当然得靠你自己设计能力)

外贸综合平台:E贸通
2006-08-13 00:31
tsfy2003
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-7-31
收藏
得分:0 
长见识了
2006-08-13 12:19
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用ming206在2006-8-13 0:31:52的发言:
动网论坛、动易都是用这些技术。这并不叫什么封装,这只是类似与封装。
并不是只能用INC文件来保存。后缀ASP、ASA、等都行(当然不当是HTML,那样做是瓜的)。
总之有一点,和写ASP组建一个样。我不如闭着眼睛写成组建(可以用VB,C++,JAVA等写,编译成DLL文件)
到服务器上注册就OK了,那才是真正的封装。组建不但安全,功能更加强大(当然得靠你自己设计能力)


朋友说的好,本来我这篇文章的标题是“假封装,真重用”,想讲述的就是关于如何提高asp代码重用率的问题,所以,我并没坚持说这是真正封装

另外,关于编写com组件,主要因为,现在的isp商不可能随便让你注册自写的com组件,除非我们有我们自己的服务器,所以编写com组件对于广大爱好者来说还是不合适的。所以就没提到这部分内容


个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2006-08-13 13:44
ming206
Rank: 2
来 自:重庆
等 级:等待验证会员
威 望:3
帖 子:545
专家分:7
注 册:2005-8-2
收藏
得分:0 
所以ASP在这点上是最弱的,和JSP、PHP3(也可以了现在)多好,可以想写自己所想要的组建。ASP只适合业余爱好,别把ASP当做你的职业生涯中的专业,如果你把C、C++、JAVA、C#等,学得很好,还怕不会ASP吗?假如你之前懂WEB搭建框架,我来帮你计划一下:
1.ASP几个对象用一天操作一下;
2.实际操作数据库半天;
3.文件操作半天;
4.学写类,使用类半天(只要是尽量接近面向对象编程思路去考虑,搞几个小例子会用就行了);
5.学写组建1天,会注册组建,会使用组建;
就这些,算看用了几天?但是如果你没有语言做基础可能就一年、两年,都说不定哦/

外贸综合平台:E贸通
2006-08-14 00:53
快速回复:[经验]渚薰的ASP畅谈(八)ASP代码的封装心得☆☆☆
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024968 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved