有没有人对n层Web应用程序的类命名有好的文章或好的建议?

时间:2008-09-22 20:41:17

标签: oop naming-conventions

我习惯了LLBLGen在基于数据库结构生成对象时给出的布局,这可能会为数据库中给定的“User”表生成以下类文件:

/EntityClasses/UserEntity.vb
/CollectionClasses/UserCollection.vb

这为数据访问提供了一些基本功能。但是,当你想在此基础上实现业务逻辑时,你是如何解决问题的呢?例如,给定一个可能如下所示的表结构:

 USER
 userId
 firstName
 lastName
 username
 password
 lockedOut

如果您想要锁定用户怎么办?你会从表示层调用什么代码?你会实例化UserEntity类,并执行:

 User = new UserEntity(userId)
 User.lockedOut = true
 User.Save()

或者您是否会创建一个新类,例如UserHelper(/ Businessity/UserHelper.cs),它可能具有LockOutUser函数。这会将代码更改为:

 UH = new UserHelper()
 UH.LockOutUser(userId)

或者你会扩展基础UserEntity类,并创建添加新功能的UserEntityExt吗?因此,表示层的代码可能如下所示:

 User = new UserEntityExt(userId)
 User.LockOutUser()

或者......你会完全做其他事吗?

您的目录/命名空间结构和文件/类命名约定是什么?

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是一个位于域对象之上的服务层。你基本上可以使用第二个选项,尽管我可以将其称为UserService或UserTasks。通过将此LockUser进程封装在一个位置,以后可能会在涉及更多步骤或其他域对象时更改。此外,这将是处理多个数据库调用时实现事务的地方。