项目经理说类文件里面不允许写这种代码,写这样的代码思想就是错误的(我知道可以写要添加引用即可,刚才那个帖子标题不好,结贴已经送分了).

snria 2011-06-01 11:42:49

public class User
{
private int _id;
private string _username;
public int Id
{
get { return _id; }
set { _id = value; }
}
public string Name
{
get { return _name; }
set { _name = value; }
}
/// <summary>
/// 返回用户的链接
/// </summary>
/// <param name="hasAt">是否包含@符号</param>
/// <returns></returns>
public string PutUserHref(bool hasAt)
{
if (hasAt)
{
return string.Format("<a href='/t/?uid={0}' class='userLink' target='_top'>@{1}</a>", this.Id, this.Name);
}
else
{
return string.Format("<a href='/t/?uid={0}' class='userLink' target=\"_top\">{1}</a>", this.Id, this.Name);
}
}
/// <summary>
/// 判断是否登录
/// </summary>
/// <returns></returns>
public static bool IsLogin()
{
if (HttpContext.Current.Session["User"] == null || HttpContext.Current.Session["Company"] == null)
{
if (HttpContext.Current.Request.Cookies["Email"] != null && HttpContext.Current.Request.Cookies["Password"] != null)
{
string email = HttpContext.Current.Request.Cookies["Email"].Value;
string pass = HttpContext.Current.Request.Cookies["Password"].Value;
return LoginByEmail(email, Common.DEncrypt.DEncrypt.Decrypt(pass));
}

return false;
}
else
{

return true;
}
}
}


为什么User类里面不能有PutUserHref的属性。我这个属性很多地方的都用到的啊。绑定数据的时候方便的很啊。难道我包了一下还有错?

还有就是IsLogin方法。为什么不能再类文件用Session。为什么?

代码早就写好了.也能运行正常.但项目经理看到了说 不允许在User写这2种方法.说这样写,思想上就是有错误的.说类文件里面不能出现任何处理html代码的代码以及session....
...全文
5188 112 打赏 收藏 转发到动态 举报
写回复
用AI写文章
112 条回复
切换为时间正序
请发表友善的回复…
发表回复
大鹏6177 2011-06-09
  • 打赏
  • 举报
回复
我也觉得经理是对的,你在实体类中出现了HTML拼接和SESSion,重用率和单无测试就会有问题。
kString 2011-06-09
  • 打赏
  • 举报
回复
你们经理是对的。
你这么写后期的维护很麻烦。
SilenceSu 2011-06-09
  • 打赏
  • 举报
回复
回帖拿分分
0o星仔o0 2011-06-09
  • 打赏
  • 举报
回复
看项目的规范性,毕竟是团队开发,你们经理那样说是利于维护
  • 打赏
  • 举报
回复
如果团队开发,确实不应该这么做。
要分清每层所负责的事情,比如:model层负责对关系数据库的映射;业务处理类负责业务逻辑的处理;action类负责跳转,等等。
OO_is_just_P 2011-06-08
  • 打赏
  • 举报
回复
看不懂
flxue 2011-06-07
  • 打赏
  • 举报
回复
表示对楼主的“不解”很不解!
窗户纸 2011-06-07
  • 打赏
  • 举报
回复
控制实体类分层不上上嘴皮碰碰下嘴皮的事,如果项目经理及架构师在设计结构时并没有按照分层设计,指望程序员自行去分层那是做梦,这点上,如果项目经理的理由是实体类不能这样做,那首先项目经理就有责任。
如果你做的是界面类,那如何编程是你的权利,关联实体意义的类并不一定是数据层的实体类,在业务层、界面层都可能会出现,好的架构师可以合理的规划不同位置的类的功能,如user类在数据层的功能是增删改查,在业务层的功能是认证、操作、...,在界面层的功能可以是显示、排序...,

但目前看大多做的是一头酱紫而已,如果出问题,板子应该打在架构师及项目经理头上,不过话说回来,你作为程序员,还是应该完全按照项目经理说的做,即使他是错的,因为项目经理有很多事情要处理,这种事情对他来说是很小的无关软件生死的问题,但你如果跟他硬顶,会耗费他大量的精力跟你这个刺儿头较真,倒是真有可能在其他方面坏了大事。
Ricercar 2011-06-07
  • 打赏
  • 举报
回复
Session是在IIS里的线程里的,dll中的类在另一个线程,所以无法访问Session,必须用参数传给dll中的类
Yang_ahstu0007 2011-06-07
  • 打赏
  • 举报
回复
哪有把业务代码写在实体对象里的?
「已注销」 2011-06-07
  • 打赏
  • 举报
回复
类尽量解耦。
skylovejjp 2011-06-07
  • 打赏
  • 举报
回复
确实只是习惯问题,每个企业里面都有自己的规范。我的习惯是model层的类里面封装的都是属性,没有方法。
紫川秀 2011-06-07
  • 打赏
  • 举报
回复
我是第100个..
tgy_201208 2011-06-07
  • 打赏
  • 举报
回复
要回答这个问题,需要考虑软件开发中的两个问题
1、分层问题
2、封装问题
amandag 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 sp1234 的回复:]
引用 32 楼 deping_chen 的回复:

虽然我是C++程序员,但面向对象思想是一样的。
我认为你的项目经理的观点是正确的,你的那两个方法应该放到Login这样的类【假如有的话】中。

其实我并不认为这个责任你在开发人员,而是在项目经理。它怎么能够事后对开发人员的“设计”说三道四呢?难道他没有在一个“类库”的角度去告诉清楚程序猿“我要怎样测试”吗?在类库的角度,那么就没有先入为……
[/Quote]

这个应该是Tech Leader 的责任吧

就楼主所提的问题,我个人是极其反对在实体类中拼接html代码的,拼接html是页面的职责。

你只要想想,如果这个链接变了...
shadowkiss 2011-06-07
  • 打赏
  • 举报
回复
"
为什么User类里面不能有PutUserHref的属性。我这个属性很多地方的都用到的啊。绑定数据的时候方便的很啊。难道我包了一下还有错?

还有就是IsLogin方法。为什么不能再类文件用Session。为什么?

代码早就写好了.也能运行正常.但项目经理看到了说 不允许在User写这2种方法.说这样写,思想上就是有错误的.说类文件里面不能出现任何处理html代码的代码以及session....
"



你们经理说的是对的。。。

按照软件架构的设计思想,软件模块应该单一职责并且易于测试(其实还有很多,这里只说这两个)

你的putXXX方法是输出都看的出来,但是输出的是直接控制外部的显示效果,这个显示效果不应该是由此类控制的,应该是由外部控制才对,User类的职责是提供数据,而不是数据和显示效果。此处建议你了解下MVC模式

"不能出现任何处理html代码的代码以及session...."
这也是对的,你使用起来虽然很方便,但是你没有考虑到如此编程User对象就和Web容器提供的对象耦合在一起了,单元测试的时候你怎么办?解决方案可以采用IOC或参数传递依赖的方法

做设计的时候不要只想目前的使用,而要全面考虑到扩展、测试、容错、弹性等的问题,努力吧。

loverfuping 2011-06-07
  • 打赏
  • 举报
回复
随便怎么写,只有傻子才看不懂程序
zhuli86122068 2011-06-07
  • 打赏
  • 举报
回复
经理这么说是有道理的
sagitta1130 2011-06-06
  • 打赏
  • 举报
回复
user类,职责要单一,这个类里面只能写一些与user信息有关的类!
你所加的islogin等,并不是user类所具有的,你可以再写一个类,来进行这样的判断;
因为只在user类初始化之后,islogin才有意义,如果user没有初始化,islogin就显得毫无意义!
lizhongkan 2011-06-06
  • 打赏
  • 举报
回复
思想上的问题:没有符合一致性的抽象!!!
看看《代码大全》
加载更多回复(89)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧