首页 新闻 会员 周边

关于传值!!

0
悬赏园豆:20 [已解决问题] 解决于 2008-11-04 00:44

经常在设计方法的时候会遇到要获取一个id或者是一个Name之类相对数据量较小的数据

比如一个博文实体

我只需要他的id

如果是传整个Model的话

model里面的文章内容数据量肯定很大

这样是不是有点浪费呢

 

所以有些方法就经常会这样写

public void isNameUsed(string name){}......

或者

public string GetUserNameById(int id){}......

但是又经常自我感觉很不好

请问我这样写是否合适

 

 

番茄爱炒蛋的主页 番茄爱炒蛋 | 初学一级 | 园豆:0
提问于:2008-11-02 00:50
< >
分享
最佳答案
0

如果文章内容特别大的,就不把内容取出来,比如你有一个文章有字段如下:

标题--大概15-20个字吧

ID--一个int

作者名--5-10个字

发布日期--DateTime一个

内容--天知道多少

 

从这个字段来看,只要内容不轻易拿出来,其他全取出来也不会占用太大的流量

因此我的选择是如下设计

class BlogEntryConfig {

    public int ID { get; set; }

    public string UserName { get; set; }

    public DateTime PublishDate { get; set; }

    public string Title { get; set; }

}

class BlogEntry {

    public BlogEntryConfig Config { get; set; }

    public string Content { get; set; } //把内容独立出来

}

此时你的接口设计如下

public BlogEntryConfig GetConfig(int id);

public BlogEntry GetEntry(id);

 

这样是很标准的通过聚合而形成的对象关系,在设计上比较合理,也不会浪费太多内存/网络,同时操作比较OO(如果你觉得OO非常必要的话)

Gray Zhang | 专家六级 |园豆:17610 | 2008-11-02 00:57
其他回答(6)
0

不错,顶一下楼上的!

上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2008-11-02 03:58
0

@Gray Zhang

这样做挺不错的 学习了

张荣华 | 园豆:2020 (老鸟四级) | 2008-11-02 14:03
0

Gray Zhang

学习

将内容和属性分离

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2008-11-02 23:36
0

这种方法很好,学习

小灰熊 | 园豆:195 (初学一级) | 2008-11-03 14:04
0

@Gray Zhang

学习了,不错。

金鱼 | 园豆:1090 (小虾三级) | 2008-11-03 17:00
0

呵呵,学习,认真的学习态度啊!

Geeks | 园豆:560 (小虾三级) | 2008-11-03 17:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册