プロジェクトの編成方法 (名前空間、ファイルごとに 1 つのクラスなど) についていくつか質問を見つけましたが、より具体的に言えば、非常に密接に関連する「もの」をどのように編成しますか?
私は通常、次のようになります。
- インターフェイス_
IMyStuff
- そのインターフェイスの基本的なスケルトンを提供する基本(抽象の場合もある) クラス:
BaseMyStuff
- 実装クラス
MyStuffWithBellsAndWhistles
,MyStuffWithChocolateFlavours
それらが同じ名前空間にあることは理にかなっているように思えますが、これらすべてのファイルを同じフォルダーにまとめると、フォルダーが少し混雑し始めるように感じます (実際には実際の問題ではありませんが、奇妙に感じます) )。
インターフェイスと基本クラスの両方を同じファイルに定義してもよろしいでしょうか?
または、それらをサブフォルダーにグループ化しても問題ありませんが、同じ名前空間にありますか? このような :
-MyNamespace
|-Interfaces
| -IMyStuff
| -IMyOtherStuff
|-BaseClasses
| -BaseMyStuff
| -BaseMyOtherStuff
|-Implementation
| -MyStuffWithAwesomeBehaviour
| -MyStuffWithGreatUsefulness
| -MyOtherStuffSoNeatYouWillCry
この種の組織に関する「ベスト プラクティス」は何ですか?