.net 经理班?

.net 经理班?,.net,design-patterns,webforms,methodology,.net,Design Patterns,Webforms,Methodology,我正在写一个.NETWebForms应用程序。它有许多类,例如用户、预订等。 目前我有很多管理类,比如bookingManager,管理这些类。例如,在创建新预订时,调用bookingManager中的add方法,并传递预订。然后检查预订是否有效,检查是否冲突,如果不冲突,则将其添加到数据库中。 对于其他类,我也有类似的管理器,但是像用户管理器这样的管理器只负责将用户添加到数据库中。 所以我的问题是,这是做这类事情的最佳方式,还是有一种模式或方法更适合这类事情?拥有manager类没有什么错,特

我正在写一个.NETWebForms应用程序。它有许多类,例如用户、预订等。 目前我有很多管理类,比如bookingManager,管理这些类。例如,在创建新预订时,调用bookingManager中的add方法,并传递预订。然后检查预订是否有效,检查是否冲突,如果不冲突,则将其添加到数据库中。 对于其他类,我也有类似的管理器,但是像用户管理器这样的管理器只负责将用户添加到数据库中。
所以我的问题是,这是做这类事情的最佳方式,还是有一种模式或方法更适合这类事情?

拥有manager类没有什么错,特别是当他们管理系统的几个不同方面时,比如你提到的预订经理。在这种情况下,您可能不想让用户了解预订,或者让预订了解用户,但这自然取决于系统的具体情况

  • 管理器的好处在于,它提供了一个中心和逻辑位置来存储依赖于多个组件的复杂逻辑。它还允许您这样使用数据类,并增加这些类的内聚性

  • 管理者“不太好”的地方在于,您有另一个组件,它可能与系统中的其他组件紧密耦合。您需要平衡这方面的利弊,选择对您的应用程序最有意义的体系结构


  • 拥有manager类没有什么错,特别是当它们管理系统的几个不同方面时,比如您提到的booking manager。在这种情况下,您可能不想让用户了解预订,或者让预订了解用户,但这自然取决于系统的具体情况

  • 管理器的好处在于,它提供了一个中心和逻辑位置来存储依赖于多个组件的复杂逻辑。它还允许您这样使用数据类,并增加这些类的内聚性

  • 管理者“不太好”的地方在于,您有另一个组件,它可能与系统中的其他组件紧密耦合。您需要平衡这方面的利弊,选择对您的应用程序最有意义的体系结构


  • 我认为最好为此类类实现Save、Delete和Update方法。对于这样的事情,一个经理级的培训绝对是过火了。例如,在Booking类中实现的那些方法可以执行相同的验证,并避免向代码中添加太多类所带来的任何复杂情况。

    我认为最好为这些类实现保存、删除和更新方法。对于这样的事情,一个经理级的培训绝对是过火了。例如,在Booking类中实现的那些方法可以执行相同的验证,并避免向代码中添加太多类所带来的任何复杂情况。

    正如您所描述的,您已经在使用一种模式,即3层模式:)

    这说明在应用程序中,您应该将代码分为3层(如名称所述):

  • 表示层:您在其中编写代码来表示数据(ASPx/winforms/etc)

  • 应用层:您放置所有业务逻辑的位置(您正在使用Manager类执行的操作)

  • 数据层:对数据库进行实际访问的层

  • 当您有一个具有多个地址的客户机时,遵循此模式非常有用。客户机存储在一个表中,而地址存储在另一个表中。在表示层中,您只需调用应用层中的方法来保存客户端。在应用层中,您将检查数据并调用数据层中的两个方法,一个用于保存客户端,另一个用于保存地址

    现在,如果您有多个地址的供应商,您可以在数据层中使用相同的方法保存它们

    如果您有复杂的对象,这将非常有用。然而,如果你的大多数对象都很简单,我建议你仔细考虑一下这个模式是否适合你


    正如您所描述的,您已经在使用一种模式,即三层模式:)

    这说明在应用程序中,您应该将代码分为3层(如名称所述):

  • 表示层:您在其中编写代码来表示数据(ASPx/winforms/etc)

  • 应用层:您放置所有业务逻辑的位置(您正在使用Manager类执行的操作)

  • 数据层:对数据库进行实际访问的层

  • 当您有一个具有多个地址的客户机时,遵循此模式非常有用。客户机存储在一个表中,而地址存储在另一个表中。在表示层中,您只需调用应用层中的方法来保存客户端。在应用层中,您将检查数据并调用数据层中的两个方法,一个用于保存客户端,另一个用于保存地址

    现在,如果您有多个地址的供应商,您可以在数据层中使用相同的方法保存它们

    如果您有复杂的对象,这将非常有用。然而,如果你的大多数对象都很简单,我建议你仔细考虑一下这个模式是否适合你


    如果管理器像是UI和域类之间的控制器/演示器,我认为它应该是薄层的。它应该包含几行代码。然后域服务或服务类应该负责rest作业。例如:

    用户界面:

    预筛机:

    public void Save()
    {
       bookingService.Save(view.Name,view.DateTime...)
    }
    
    服务:

    public void Save(string name,DateTime dateTime...)
    {
       //do operations or call repository/Dao classes to save
    }
    
    对于小型应用程序来说,这可能是一种过度杀伤力,但对于大型应用程序来说,这会增加可维护性。您可以查看域驱动设计手册和域服务类。

    如果需要管理
    public void Save(string name,DateTime dateTime...)
    {
       //do operations or call repository/Dao classes to save
    }