我无法用英语解释我的问题。所以让我表明我的情况。C#松耦合
// in Main Project
public class User
{
public int version
{
get;
set;
}
}
// in Common Project
public class Service : BaseService
{
User _user;
public void SetVersion(int versionID)
{
_user.version = versionID;
}
public bool HasMessage()
{
return GetMessage(user.version);
}
}
现在我有另一个子项目。我需要在那里使用Service类。 所以我希望使Service类独立于User类。
我该怎么做?
我只有下面的解决方案。有没有什么精彩的方法?
public class Service : BaseService
{
Action<int> _getCallBack;
Func<int> _setCallBack;
public Service(Action<int> getCallback, Func<int> setCallBack)
{
_getCallback = getCallback;
_setCallback = setCallback;
}
public void SetVersion(int versionID)
{
setCallback(versionID);
}
public bool HasMessage()
{
return GetMessage(getCallback())
}
}
为什么主要项目中的用户名? – stuartd
这看起来很适合继承?你的'用户'可以从'服务'派生?这是因为用户和服务之间存在1:1的链接。 –
这些库是Opensource Project的一部分。我试图不改变那里的原始代码...所以它不是那么容易我改变体系结构..如果我有说服某些解决方案..我认为启动新的分支或新的存储库 –