您的位置:首页 > 其它

Attribute(特性),怎么用才更好?

2010-08-06 09:49 323 查看
前几年:

  2008年的某一天,我坐火车去北京。硬卧上铺,一晚上就到北京了。爬到上铺之后发现,旁边上铺有一老兄抱着一个笔记本,一开始还以为是看电影呢,仔细一看才发现——老天呀,居然在写代码!

  这老兄也太工作狂了,当时可是晚上九点多了呀。屏幕里的IDE和vs有一点像,但又不是。问过了之后才知道,原来是大名鼎鼎的java(具体叫啥记不清楚了,好像是j2ee,对java相当的不熟,就是那个意思了)。遇到java高手了,不能错失良机,要问问心中的疑问。

  于是我就问他“听说java都在用Hibernate,需要把一些信息记录在XML里?”。
  老兄说“是呀,以前都这么用。”

  “以前?怎么是以前?”

  “因为用XML记录信息不方便。”
  

  “那么现在呢?”
  “现在用特性了,把需要的信息放在特性里面。”

  ……

  后面又闲聊了一些。

  2008年的事情,对话是记不准确了,大体的意思就是这样,一开始用XML,后来用特性。当时我就觉得,俺们.net程序员怎么总是拾人家的牙恵?

现在:

  这几天看到了一些关于特性和实体类的文章,中心思想就是用特性记录一些想要记录的信息,用特性把实体类和XX联系起来。

  我们先来看看这一篇,C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
  http://blog.csdn.net/RonoTian/archive/2008/09/08/2900714.aspx

  给出的示例如下:

public class Person
{
private string _Name;
private int _Age;
private string _Sex;

[ColumnID(2000020)]
public string Name
{
get { return this._Name; }
set { this._Name = value; }
}

[ColumnID(2000040)]
public int Age
{
get { return this._Age; }
set { this._Age = value; }
}

[ColumnID(2000030)]
public string Sex
{
get { return this._Sex; }
set { this._Sex = value; }
}
}

  简洁多了吧。什么?你问,这个特性不易读看不出来是什么不好。这个嘛,属性名称是给程序员看的,而特性是给程序看的,只要不写错就可以。

  符合三个规则:

  最小获知,只需要知道字段编号。
  依赖倒置,依赖字段编号,而不是具体的信息。
  单一职责,字段名可以变化,字段大小也可以变,验证方式也可以变,只要字段编号不变,那么就不需要改实体类。

===========================================

图1



图2,这是一个视图



图3,这个也是视图,其实和上面的是一个视图,只是显示的字段不同



图4,这是一个表里的记录,角色、功能节点与字段编号的关系。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: