関数は、オブジェクト自体ではなく、インターフェイスをパラメーターとして使用する必要があることを同僚に納得させようとしています。小さなオブジェクトは渡しても問題ないと思いますが、大きなオブジェクトの場合は、インターフェイスを与えて、すべてではなく、単に i/f を渡します。
これらの大きなクラスは 1 つしか存在しないことに注意してください。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(); }
};