面向对象与动态网页布局的简单思考
2009-03-03 22:56
211 查看
最近在写阳光网新版代码的时候,思考着曾经希望的动态布局的效果。具体就是对数据表中数据的显示能够在网页中动态地调整列序,即表格的个性化。
此事若在以往的是比较容易实现的,可以通过sql的动态改动,或者在数据访问时就进行页面呈现,这两种方法均能轻易解决。
但这样写的直接后果是代码混乱,数据库查询优化很难处理;而且对于此次的架构模型上,又细分了数据层、数据访问层、业务层、呈现层等,各层之间耦合性较低,如果采用前两种方法很有可能使代码层次混乱,不利于今后维护。
同时,通过数据访问层所取得得均是实体对象。要在实体对象上更改属性的访问次序,显然是及其的困难。
例如,内容类ContentInfo{title,content,author,date...},不同的使用者,可能有多种显示次序,对象在属性上的微观控制显然不是极其灵活,我们曾想通过反射机制实现,不过一听这方式就知此方案不能在系统中整体应用。
对于此次系统,我们阳光网的几个人给系统加入了很多个性化的元素及操作,而几乎全是面向对象的设计思路又是我们值得高兴的东西;但某方面讲又不想破坏系统性能去实现某一个功能。为此,曾去掉linq的代码,自身实现对象的转换。
此番可以说又是对象带来的一个问题。在最终的确定中,我们又放弃数据访问层获取对象的方式,改为可能获得DataTable。这样结合任何一个用户的配置信息。如,
title,‘标题’,#FF0000,600px,true
author,'作者,发布人',#FF0000,600px,true
...
content,...
结合DataTable['title']名称访问,等业务逻辑实现了个性定义显示列序以及是否显示等问题,而且可以全面使用的任意用户的个性化界面方案。
同时,不能不思考一下实体对象的使用。
面向对象,有时需要更灵活的使用方式。
此事若在以往的是比较容易实现的,可以通过sql的动态改动,或者在数据访问时就进行页面呈现,这两种方法均能轻易解决。
但这样写的直接后果是代码混乱,数据库查询优化很难处理;而且对于此次的架构模型上,又细分了数据层、数据访问层、业务层、呈现层等,各层之间耦合性较低,如果采用前两种方法很有可能使代码层次混乱,不利于今后维护。
同时,通过数据访问层所取得得均是实体对象。要在实体对象上更改属性的访问次序,显然是及其的困难。
例如,内容类ContentInfo{title,content,author,date...},不同的使用者,可能有多种显示次序,对象在属性上的微观控制显然不是极其灵活,我们曾想通过反射机制实现,不过一听这方式就知此方案不能在系统中整体应用。
对于此次系统,我们阳光网的几个人给系统加入了很多个性化的元素及操作,而几乎全是面向对象的设计思路又是我们值得高兴的东西;但某方面讲又不想破坏系统性能去实现某一个功能。为此,曾去掉linq的代码,自身实现对象的转换。
此番可以说又是对象带来的一个问题。在最终的确定中,我们又放弃数据访问层获取对象的方式,改为可能获得DataTable。这样结合任何一个用户的配置信息。如,
title,‘标题’,#FF0000,600px,true
author,'作者,发布人',#FF0000,600px,true
...
content,...
结合DataTable['title']名称访问,等业务逻辑实现了个性定义显示列序以及是否显示等问题,而且可以全面使用的任意用户的个性化界面方案。
同时,不能不思考一下实体对象的使用。
面向对象,有时需要更灵活的使用方式。
相关文章推荐
- 面向对象中封装特性的简单理解
- 简单工厂模式和动态创建对象
- 1、面向对象以及winform的简单运用(开篇)
- 3、面向对象以及winform的简单运用(类的初步认识)
- 面向对象思想再思考
- 8款神奇的动态网页布局及其制作方法
- 8个神奇的网页动态流体布局及其做法揭秘
- 网页简单布局之结构与表现原则(HTML/CSS)
- js 面向对象简单练习(继承)
- 屏幕布局动态划分的另类思考----抽象屏幕类
- 【javascript基础篇】——面向对象动态加载属性和方法
- 面向对象处理人员数据 (动态数组,人员数据的增加与删除)
- 大设计时代:针对超大网页布局的一些思考和建议
- 简单谈谈面向对象和面向过程的区别
- 利用修改div的位置+js对象存储div信息 实现简单的div自定义布局功能
- Microsoft AJAX Library中的面向对象简单介绍
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- MFC中动态创建对象的一点思考
- sql+PHP基础+面向对象基础简单总结
- 22_面向对象程序设计(原型【五】简单原型的使用