设计模式命名法&澄清:提供者,服务,经纪人

时间:2011-09-29 15:03:29

标签: c# asp.net-mvc-3 design-patterns naming-conventions

有人可以为我定义概念上的区别在于提供者,服务和经纪人吗?

我经常编写MVC应用程序并将大部分业务逻辑卸载到其他类。没什么好看的,只需传入参数并收回POCO实例。

为那些为我的控制器执行繁重工作的课程提供正确的标签是什么?

2 个答案:

答案 0 :(得分:24)

提供商实际上只是Strategy Pattern

的另一个名称

通常当有人提到使用提供者时,他们正在讨论一些可能存在许多实现的抽象合同。

//As an abstract base class
public void SetupRoles(RoleProvider provider){}

//As an interface
public void SetupRoles(IRoleProvider provider){}

//As a delegate
public void SetupRoles(Action<String> addRole){}

服务通常用于表示只有方法的无状态对象。服务可以用作策略,但不一定非必须。

//Plain old service... doesn't even need the web
// CRAZY TALK MAN!!!
public static class RoleService
{
    public static void SetupRoles(){};
    public static String[] GetRoles(){};
}

Broker实际上只是负责......经纪人。它旨在在服务和对象之间移动消息,协调服务之间的交互,以使它们保持隔离。

public class Broker
{
    public void SendImportantMessage(Message msg)
    {
        //Do some important processing here
        // Maybe some validation
        NotifySomeOtherServiceOrClassOrMaybeBobFromAccounting(msg);
    }
}

答案 1 :(得分:2)

这些似乎是架构模式而不是设计模式;