Sha*_*awn 15 c# design-patterns naming-conventions asp.net-mvc-3
有人可以为我定义提供者,服务和经纪人之间的概念差异吗?
我经常编写MVC应用程序并将大部分业务逻辑卸载到其他类.没什么好看的,只需传递参数并接收回POCO实例.
什么是正确的标签,让那些课程为我的控制器执行繁重的工作?
Jos*_*osh 27
提供者实际上只是战略模式的另一个名称
通常,当有人提到使用提供者时,他们正在讨论一些可能存在许多实现的抽象合同.
//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){}
Run Code Online (Sandbox Code Playgroud)
服务通常用于表示只有方法的无状态对象.服务可以用作策略,但不一定必须如此.
//Plain old service... doesn't even need the web
// CRAZY TALK MAN!!!
public static class RoleService
{
public static void SetupRoles(){};
public static String[] GetRoles(){};
}
Run Code Online (Sandbox Code Playgroud)
一个经纪人实际上只是嗯...经纪负责.它旨在在服务和对象之间移动消息,协调服务之间的交互以使它们保持隔离.
public class Broker
{
public void SendImportantMessage(Message msg)
{
//Do some important processing here
// Maybe some validation
NotifySomeOtherServiceOrClassOrMaybeBobFromAccounting(msg);
}
}
Run Code Online (Sandbox Code Playgroud)