规范的对象命名


    规范的命名本身并不会对性能有任何影响,在这里我们单独来讲一讲,主要是因为这是一个不太被人重视,但是对后期的数据库维护影响非常大的内容。就像编程语言各自的一些不成文的编码基本规范一样,虽然由于在最初使用时看不出太多的利益,因而被人认为是一种束缚,但是当每一个人在接手维护一段编写很不规范的代码时,估计大部分都会非常郁闷,甚至在心里暗骂当初的编写者。其实任何系统都一样,没有任何规范可循,完全一个天马行空的作风,只会给后人(甚至可能是自己)留下一个让人摸不着头脑的烂摊子,难以维护。

类和对象的属性

在面向对象软件的上下文中,对象可以用于表示几乎所有事物和概念——可以表示无力对象,例如“桌子”或者“客户”;也可以表示只有在软件中才有意义的概念性对象,如“文本输入区域”或者“文件”。通常,在软件中,我们对对象最感兴趣,这些对象当然既包括现实世界存在的实物对象,也包括需要在软件中表示的概念性对象。

       面向对象软件由一系列具有属性和操作的自包含对象组成,这些对象之间能够交互,从而达到我们的要求。对象的属性是与对象相关的特性或变量。对象的操作则是对象可以执行的、用来改变其自身或对外部产生影响的方法、行为或函数。
面向对象软件的一个重要优点是支持和鼓励封装能力。封装也叫数据隐藏。从本质上说,访问一个对象中的数据只能通过对象的操作来实现,对象的操作也就是对象的接口。
       一个对象的功能取决于对象使用的数据。在不改变对象的接口的情况下,能很容易地修改对象实现的细节,从而提高性能、添加新性能或修复bug。在整个项目中,修改接口可能会带来一些连锁反应,但是封装允许在不影响项目其他部分的情况下进行修改或修复bug。
在软件开发的其他领域中,面向对象已经成为一种标准,而面向功能或过程的软件则被认为是过时的。不幸的是,由于种种原因,大多数Web脚本仍然是使用一种面向功能的特殊方法来设计和编写的。
       存在这种情况的原因是多方面的:一方面,多数Web项目相对比较小而且直观。我们可以拿起锯子就做一个木制的调味品的架子而不用仔细规划其制作方法。同样,对于Web项目,由于网站规模太小,设计者也可以这样不经过仔细规划而成功地完成大多数Web项目。然而,如果不经过计划就拿起锯子来建造一栋房子,房子的质量就没有保证了。同样的道理也适用于大型的软件项目——如果我们要想保证其质量的话。

Session对象使用时应注意的事项

Session对象用于存储特定的用户会话所需的信息 ,从一个用户开始访问某个特定的主页起,到用户离开位置。服务器可以分送给这个用户一个Session,以存特定的用户信息。Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议。那么在使用Session对象时,我们要注意哪些事项吗?

       ASP.NET中的Session不需要Cookies的支持,也就是说,如果用户关闭了Cookies,Session的值一样也可以保存。在默认的情况下,ASP.NET中的Session还是需要Cookies的支持,但是通过一些设定,具体做法是:编辑区配置文件(machine.config或sessionState有关的设置区,将其cookieless属性值设置为Ture。

序列化的变量和对象

序列化是将可以保存在PHP变量或对象中的任何数据转换成字节流的处理过程,这个字节流可以存储在数据库中,或者通过URL在网页之间传递。如果不使用这个处理过程,很难存储和传递整个数组或对象的内容。

随着session(会话)控制的引入,序列化的作用有了一定的降低,数据的序列化现在可以使用会话控制来实现。事实上,为了将会话变量在HTTP请求之间存储,可以使用会话控制函数来序列化会话变量。

但是,我们可能还希望将PHP数组或对象保存到一个文件或数据库中。如果要这样做,就必须了解如何使用这个函数:serialize()和unserialize()。

对象创建的依赖之依赖注入

领略了工厂模式的强大威力,下面继续介绍更加灵活解耦的依赖注入方式,继续回到对于Animal实例化的依赖倒置环节,来看看注入方式下如何通过容器来实现实例创建过程,在此选择Unity基础容器来实现,引入Microsoft.Practices.Unity.dll程序集和Microsoft.Practices.Unity命名空间,然后就可以很容易地通过Unity容器来完成对象创建依赖关系的隔离:

     class UnityCreation
     {
         public static void Main()
         {
             IUnityContainer container =new UnityContainer
             container.RegisterTYpe<Animal,Dog>();
 
              Animal dog = container.Ressolve<Animal>();
              dog.show();
              }
      }

基于对象与面向对象的区别

这样的话题常常被大家问起,下面我们就来了解一下基于对象与面向对象的区别吧!

基于对象,可能大家不是很熟悉,它是对数据类型的抽象,封装一个结构包含了数据和函数,然后对象为目标进行操作,而面向对象相信大家了就比较了解了。它首先指根据客户需求抽象出业务对象;然后对需求进行合理分层,构建相对独立的业务模块;之后设计业务逻辑,利用多态、继承、封装、抽象的编程思想,实现业务需求;最后通过整合各模块,达到高内聚、低耦合的效果,从而满足客户要求。

基于对象与面向对象,其核心的差别是对于继承的支持。例如:VB和JavaScript是基于对象语言;而C#或者C++是面向语言,提供了对继承的原生态支持。

面向对象中的设计原则

众所周知,设计原则是设计模式的基石,当遵循设计原则的时候,写出的代码一般都会变得非常的灵活,并且可以应对变化,也更加容易维护。下面我们就先来了解一下基本的设计原则吧!

第一,KISS原则
软件开发中常常遇到的问题就是:把一个问题过度的复杂化。KISS原则的目的就是提倡在设计和编码中,尽量保持代码的简约性,避免不必要的复杂。简约不等于简单。

第二,DRY原则
DRY原则的目的就是:抽取系统中的公共部分,并把它放置在一个地方以避免重复。这个原则不只是适用于代码中,还可以用于功能和业务逻辑上,确保它们不重复。这就要求对系统的职能有聊好的分割,用力之间不存在交叉。

数据传输对象模式

数据传输对象是一个为了减少网站建设编码过程中方法调用次数而在进程间传输数据的对象。

网站建设编码中当使用远程接口时,例如使用远程外观模式,那么每一次调用的代价都是非常大的。所以需要减少调用的次数,这就意味着每一次的调用都会传输大量的数据,可通过多种方法达到此目的,例如传人大量的参数,但是这样会使应用很笨拙,而且不灵活。

解决的办法就是传递一个数据传输对象,这个对象将保留调用需要用到的所有数据。它需要被序列化以便能在进程中传输。通常,在服务端有一个转换器,这个转换器负责在DTO与业务对象之间进行数据的转换。

Application对象的事件应用

Application对象的onstart事件是整个web站点的初始化事件,其在global.asa文件中相应的响应过程,就是web站点服务器的初始化过程。这个过程的基本应用时跟踪当前活动中得用户数量,这是初始化web站点经常用到的变量。Application对象的onend事件是整个web站点的结束处理事件,其在global.asa文件中相应的响应过程,就是web站点服务器的结束处理过程。这个过程的基本应用是保存一些web站点的运行结果,卸载初始化程序创建的对象,特别是数据库结果集的对象,恢复操作系统环境。

数据库中session对象的使用

Session指的是访问者从开始访问一个web站点到离开为止的那段时间,而web服务器为每个访问者单独保存一个session对象。通过session可以来存储访问者的一些喜好,例如:访问者是喜好新闻还是专题文章?访问者是否喜欢下载音乐等等,这些信息都可以依据session来跟踪。Session还可以创建电子商务站点的物流篮。无论什么时候用户在网站中选择了一种产品,那么这种产品就会进入购物篮,当准备离开时,就可以立即进行所选择产品的订购。另外,session还可以用来跟踪访问者的习惯,可以跟踪访问者从一个页面到另一个页面,对于站点的更新和定位是非常有好处的。

«12»
最近发表
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
搜索
Tags列表
网站收藏
图标汇集
  • 订阅本站的 RSS 2.0 新闻聚合
友情链接

热门搜索: 外链域名 高外链域名 高收录域名

Copyright www.thyst.cn. Some Rights Reserved.