在OOP设计模式中,存储库模式和服务层之间有什么区别?
我正在开发一个ASP.NET MVC 3应用程序,我正在尝试理解这些设计模式,但我的大脑却没有得到它......
我在重构代码时经常遇到这种情况。假设我有一个基类,我读取了一些配置参数并将它们填充到这样的属性中
public BaseClass()
{
_property1 = ConfigurationManager.AppSettings["AppSetting1"];
_property2 = ConfigurationManager.AppSettings["AppSetting2"];
_property3 = ConfigurationManager.AppSettings["AppSetting3"];
}
Run Code Online (Sandbox Code Playgroud)
然后我像这样在另一个类中调用一个方法
OtherClass otherClass = new OtherClass();
var foo = otherClass.SomeMethod(_property1, _property2, _property3);
Run Code Online (Sandbox Code Playgroud)
这样做更好吗?如果我只需要 OtherClass 类中的 AppSettings 值怎么办?然后我可以将它们作为私有道具加载并在构造函数中初始化它们,并且引用类/调用者不需要关心设置。
public OtherClass()
{
_property1 = ConfigurationManager.AppSettings["AppSetting1"];
_property2 = ConfigurationManager.AppSettings["AppSetting2"];
_property3 = ConfigurationManager.AppSettings["AppSetting3"];
}
Run Code Online (Sandbox Code Playgroud)
我的实现就是
OtherClass otherClass = new OtherClass();
var foo = otherClass.SomeMethod();
Run Code Online (Sandbox Code Playgroud)
这让我很烦恼,但我不确定为什么。哪个是更好的做法,为什么?我很抱歉我遗漏了一些明显的东西。它有时会发生,哈哈。谢谢-弗兰克