如何让一个方法只能被一个 class 访问?
How to make a method accessable to only one class?
假设我有一个 class 顶部和一个 class 底部。某些"outside code"可以调用classTop的方法,这将导致classTop访问classBottom的方法。但是如何确保它只能以这种方式工作,并且除了 Top 之外没有人不会尝试直接访问 Bottom?
这是一个例子:
如果我将 Bottom 设为私有,Top 将无法访问它。如果我做下public,每个人都可以做到。这两者之间有什么吗?我听说你们喜欢画 UML 图,但是有什么方法可以在 IDE 中强制执行您的设计吗?为什么?这什么时候会改变?
根据要求将我的评论移至真实答案。
在 C# 中,我很确定 C++,看起来您正在寻找嵌套类型。
msdn.microsoft.com/en-us/library/ms173120.aspx
public class Container
{
public Container()
{
Nested nested = new Nested();
nested.DoIt();
}
class Nested
{
private Container parent;
public Nested()
{
}
public Nested(Container parent)
{
this.parent = parent;
}
public void DoIt()
{
}
}
}
假设我有一个 class 顶部和一个 class 底部。某些"outside code"可以调用classTop的方法,这将导致classTop访问classBottom的方法。但是如何确保它只能以这种方式工作,并且除了 Top 之外没有人不会尝试直接访问 Bottom?
这是一个例子:
如果我将 Bottom 设为私有,Top 将无法访问它。如果我做下public,每个人都可以做到。这两者之间有什么吗?我听说你们喜欢画 UML 图,但是有什么方法可以在 IDE 中强制执行您的设计吗?为什么?这什么时候会改变?
根据要求将我的评论移至真实答案。
在 C# 中,我很确定 C++,看起来您正在寻找嵌套类型。 msdn.microsoft.com/en-us/library/ms173120.aspx
public class Container
{
public Container()
{
Nested nested = new Nested();
nested.DoIt();
}
class Nested
{
private Container parent;
public Nested()
{
}
public Nested(Container parent)
{
this.parent = parent;
}
public void DoIt()
{
}
}
}