1

私はクラスオブジェクトServerUserを持っています。serverUser は共有部分と見なされ、2 つのサブクラスSSHUser と FTPUser があります。SSHUser は SSH パッケージのみをサポートし、FtpUser は FTP パッケージのみをサポートします。では、サブクラス (ftpUser と sshUser) を serverUser と同じパッケージに配置するか、機能に応じて別のパッケージに配置する必要がありますか? ルールはありますか?

私の見解では、サブクラスが共有されていないため、sshUser と ftpUser を ssh モジュールと ftp モジュールに配置する必要があると思いますが、ナビゲートするのは非常に困難です。1 つのパッケージにまとめた方がナビゲートしやすく、コードをシンプルに保つことができますか? それで、どれが良いですか?通常のルールは?

この質問は、サブクラスが共有されていない場合に、例外クラスとそのサブクラスのパッケージを分割する hwo と似ていますか? オールインワンパッケージまたは他のスタイル?

4

1 に答える 1

4

最終的にはあなた次第です。コードをパッケージに構造化する方法に関しては、非常に多くの柔軟性があります。

考慮すべきいくつかのオプション:

  • 関連するクラスをまとめてパッケージ化します。つまり、さまざまな種類のユーザーを同じパッケージに入れます。ユーザー処理機能をリファクタリングしている場合など、さまざまな種類のユーザー クラスをすべてまとめれば、ソース ツリーをよりシンプルでナビゲートしやすくすることができます。
  • 独立した機能を一緒にパッケージ化します。つまり、すべての SSH 関連クラス (SshUser を含む) をserver.sshパッケージに保持します。このようにしてserver.ssh、 を、SSH 固有の機能をすべて含む独立したモジュールであるかのように扱います。

どちらか一方を優先する重要な技術的理由はありません。そのため、どちらがコード ベースをより管理しやすく、保守しやすくすると思うかに大きく依存します。

于 2012-07-28T05:42:56.690 に答える