我试图说服一位同事,函数应该将接口作为参数,而不是对象本身。我认为小对象可以很好地传递,但对于大对象,我会给它们一个接口,只是传递 i/f,而不是全部。
请注意,这些大类中只会有一个——i/f 永远不会用于不同的对象。这仅仅是为了隐藏对象的实现。
你同意将一个大类分成一个接口是好的做法吗?
这样做有什么缺点吗?
例子:
public interface class IVeryLargeClass
{
void DoSomething();
...
};
public ref class VeryLargeClass : public IVeryLargeClass
{
public:
virtual void DoSomething() { ... }
...
};
public ref class AnotherClass
{
public:
AnotherClass(VeryLargeClass^ vlc) { vlc->DoSomething(); }
// OR
AnotherClass(IVeryLargeClass^ vlc) { vlc->DoSomething(); }
};