このクラス構造を考えてみましょう:
class Test
{
public:
vector<string> nameList;
int getNumberOfUsers();
int getTotalUsersWithFirstAplhabetA() ;
void sortTheNameList();
}
ユーザーはユーザー リストに直接アクセスできるため、合計ユーザーの検索などの小さな支援機能を実際に提供する必要があります。
これらの関数は非常に小さな仕事をしていると思います。より大きなロジックを必要とする機能 (上記の並べ替えなど) については、関数を提供しています。
良いデザインですか?
編集:
私が知りたかったのは、インターフェイスの関数を使用してユーザーにクラス情報を提供している場合、この情報のサブセットを取得する機能も提供する必要があるかということです。
nameList を非公開にして、それを取得するgetter関数を提供しても、私の疑問は変わりません。他の小さな機能も提供する必要がありますか? または、ユーザーが自分で実装するためにそれらを残しますか?
私のクラスのユースケースでは、完全なリストを取得することが明確な要件であることに注意してください。しかし、他の実装は本当に必要ではありませんか?