質問: 命名規則またはディレクトリ構造 私はPHPプログラマですが、私が議論したいのはJavaの影響を受けます。 ハンガリー表記法といくつかの言語の命名規則についての記事を読んだ後、私はJavaのインタフェース命名規約がどれくらい明確であるかを証明しました。 **AbstractCollection** という抽象クラスと **Lists** という具体的なクラスがあるオブジェクトコレクションの場合を考慮して、どのように **Interface** **リスト**? 問題は、Javaの命名規則では、 **ListsInterface** や **InterfaceLists** など、インタフェースの接頭辞も接尾辞もありません。 **Lists** IS an Interface name and, obviously, at least in PHP, two files in same directory cannot have the same name of a class or interface. インターフェイスを必要とするクラスはありませんが、プログラミングチームに移行する場合はどうすればいいですか?他のプログラマは自分のクラスを使用するかもしれませんが、クラスファイルを開いて、それが提供するパブリックメソッドを調べるべきではありません。 インターフェースを読んだだけで、すべてのことが明らかです。 ディレクトリ構造のポイントは、Interfaceと同じ名前のサブディレクトリを追加し、その中に具体的なクラスのファイルを追加することができます。例えば。: ``` / /Collections /Collections/Lists.php <-- Interface /Colection/Lists/Lists.php <--- Concrete Class ``` 今何?
回答: インターフェイスとクラスに同じ名前を付けるべきではありません。決して。あなたの読者のために。 私はあなたの特定の問題は慣例とはほとんど関係ないと思っていますが、 `List` という具体的な命名の問題は、インタフェースのようには聞こえません。 `List` はそうです。しかしその場合、実装クラスには、 `List_DoublyLinked` や `List_SinglyLinked` (またはあなたが話しているリストの種類など)など、より具体的な名前が付けられます。