首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >业务层设计-如何定义规则

业务层设计-如何定义规则
EN

Stack Overflow用户
提问于 2011-10-29 04:32:08
回答 1查看 913关注 0票数 0

我理解,将业务规则放在业务层,将数据访问放在单独的数据访问层是最佳实践,而实体是模型的一部分。

例如,我正在处理模型中定义的一个客户实体,我可以通过数据访问层从数据库中获取所有客户。我也可以添加一个新的客户,通过DAL。

然而,在添加客户之前,我需要对其进行验证--因此我想我需要在业务层中定义规则--但我不太确定如何实现。

我的业务层是否只有接受实体作为参数的方法?比如BLL.Customers.Validate(Model.Customer客户)?

我的业务层是否扩展我的实体?我应该让实体类像Customer分部类那样吗?以便BLL可以通过业务规则进一步扩展它们?

我不知道如何设计业务层.

EN

回答 1

Stack Overflow用户

发布于 2011-10-30 17:03:53

您的实体应该真正地携带它们自己的所有业务行为,因此实体本身将有一个验证方法。我还喜欢在实体中使用静态工厂方法来创建实体:

代码语言:javascript
复制
public class Cusotmer
{
    private long? _id;
    private string _name;
    //other attributes...

    public static Customer Create(string name)
    {
        Customer customer = new Customer();
    }

    public void Validate()
    {
        if(_name == null)
            throw new ValidationException("Name has not been set.");
    }
}

我不知道为什么需要部分类,除非可能是从数据库生成实体的代码吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7937022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档