我有一個有趣的場景,我一直在思考,想知道什麼解決方案可能會有一個比我提出的更優雅的解決方案。管理界面執行成員的可訪問性
考慮以下類型
public class Session : ISessionGraphTransitionHandler
{
public void Handler1()
{
// do stuff that leverages this object instance
}
public void Handler2()
{
// do stuff that leverages this object instance
}
// ...
public void HandlerN()
{
// do stuff that leverages this object instance
}
private Graph sessionGraph;
public Session()
{
sessionGraph = new Graph(this); // where ISessionGraphTransitionHandler is expected
}
}
目前的界面看起來是這樣的:
public interface ISessionGraphTransitionHandler
{
public void Handler1();
public void Handler2();
...
public void HandlerN();
}
這一切的問題是,外部參與者可撥打sessionInstance.Handler1()
內部似乎是它可以解決這在某種程度上,但我正在尋找其他解決方案。這裏的想法是該圖應該調用父類。這是一種設計氣味嗎?有沒有更好的方法來解決這個問題?
實際類型未清除,併發布here。我稍後可能會清理它們。
當然,不是一個可怕的想法,但是這些處理程序類需要訪問會話中定義的元素。 –