基本クラスとその継承を持つクラス階層を形成する多くのクラスがあります。各クラスは、いくつかの責任を負うことで非常に大きくなりますが、それらの責任は結合されていません。一貫して簡単に使用できるため、さまざまな責任をクラスにまとめています (明確に表現することはできません。図のコードを参照してください)。しかし、これは良い設計ではないようです。使いやすさを維持しながら大規模なクラスを分割するにはどうすればよいですか? あなたの提案とコメントをありがとう!以下は、イラストコードを見つけてください。
// Base class.
class Base
{
public:
// For responsibility A
virtual void A1();
virtual void A2();
...
// For responsibility B
virtual void B1();
virtual void B2();
...
// More responsibilites.
...
};
// Derived class 1.
class Derived_1 : public Base
{...};
// More derived classes.
...
// A function use it.
void Fun()
{
Base* p = new Derived_1;
p->A1(); // Here A1 and B1 are binded in the class Base, thus it make sure
p->B1(); // their uses are consistent. If they are separated, how to ensure it?
}