zoukankan      html  css  js  c++  java
  • 面向对象与动态网页布局的简单思考

      最近在写阳光网新版代码的时候,思考着曾经希望的动态布局的效果。具体就是对数据表中数据的显示能够在网页中动态地调整列序,即表格的个性化。

      此事若在以往的是比较容易实现的,可以通过sql的动态改动,或者在数据访问时就进行页面呈现,这两种方法均能轻易解决。

      但这样写的直接后果是代码混乱,数据库查询优化很难处理;而且对于此次的架构模型上,又细分了数据层、数据访问层、业务层、呈现层等,各层之间耦合性较低,如果采用前两种方法很有可能使代码层次混乱,不利于今后维护。

      同时,通过数据访问层所取得得均是实体对象。要在实体对象上更改属性的访问次序,显然是及其的困难。

      例如,内容类ContentInfo{title,content,author,date...},不同的使用者,可能有多种显示次序,对象在属性上的微观控制显然不是极其灵活,我们曾想通过反射机制实现,不过一听这方式就知此方案不能在系统中整体应用。

      对于此次系统,我们阳光网的几个人给系统加入了很多个性化的元素及操作,而几乎全是面向对象的设计思路又是我们值得高兴的东西;但某方面讲又不想破坏系统性能去实现某一个功能。为此,曾去掉linq的代码,自身实现对象的转换。

      此番可以说又是对象带来的一个问题。在最终的确定中,我们又放弃数据访问层获取对象的方式,改为可能获得DataTable。这样结合任何一个用户的配置信息。如,

      title,‘标题’,#FF0000,600px,true

      author,'作者,发布人',#FF0000,600px,true

      ...

      content,...

      结合DataTable['title']名称访问,等业务逻辑实现了个性定义显示列序以及是否显示等问题,而且可以全面使用的任意用户的个性化界面方案。

      同时,不能不思考一下实体对象的使用。

      面向对象,有时需要更灵活的使用方式。

      

  • 相关阅读:
    mac 配置环境变量
    c语言中的0UL或1UL是什么意思
    javascript类型系统——正则表达式RegExp类型
    javascript运算符——算术运算符
    javascript类型系统——Number数字类型
    javascript类型系统——包装对象
    javascript基础语法——表达式
    valueOf()方法
    toString()方法
    javascript基础语法——变量和标识符
  • 原文地址:https://www.cnblogs.com/kathmi/p/1402611.html
Copyright © 2011-2022 走看看