0

私はPHPプログラマですが、議論したいのはJavaの影響です。

いくつかの言語のハンガリー語表記法と命名規則に関する記事を読んだ後、Java のインターフェイスの命名規則がいかに明確であるかを証明しました。1 つの質問があります。

AbstractCollectionと呼ばれる抽象クラスとListsと呼ばれる具象クラスがあるオブジェクト コレクションのケースを考えると、Listsのインターフェイスにどのように名前を付ける必要がありますか?

問題は、Java の命名規則では、 ListsInterfaceInterfaceListsなどのインターフェイスのプレフィックスもサフィックスもないことです。

リストはインターフェイス名であり、明らかに、少なくとも PHP では、同じディレクトリ内の 2 つのファイルが同じクラスまたはインターフェイスの名前を持つことはできません。

すべてのクラスにインターフェイスが必要なわけではありませんが、プログラミング チームに移動することにした場合はどうすればよいでしょうか。他のプログラマーは私のクラスを使用する可能性がありますが、クラス ファイルを開いて、それが提供するパブリック メソッドを確認するべきではありません。

インターフェイスを読むだけで、すべてが明確になります。

ディレクトリ構造のポイントは、インターフェイスと同じ名前のサブディレクトリを追加し、その中に具体的なクラスのファイルを追加できることから生まれました。例えば:

/  
/Collections  
/Collections/Lists.php <-- Interface  
/Colection/Lists/Lists.php <--- Concrete Class  

今何?

4

2 に答える 2

1

JavaではなくPHPの命名規則を確認する必要があると思います。

http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

Zendは、ほぼすべてのケースを考慮して、優れたものを提供します。

Symfonyには別のもの(http://trac.symfony-project.org/wiki/HowToContributeToSymfony#CodingStandards)があり、Pearには別のもの(http://pear.php.net/manual/en/standards.php)もあります。

あなたの場合、インターフェースがインターフェースであることを示すためだけに、Zendはインターフェースに接尾辞を付けるように強制します。したがって、dir構造は次のようになります。

Collections/
Collections/ListsInterface.php
Collections/Lists/ListAbstract.php
Collections/Lists/MyList.php

この投稿があなたの質問に答えるかどうかはわかりませんが、お役に立てば幸いです。

于 2011-10-27T18:04:18.887 に答える
1

インターフェイスとクラスに同じ名前を付けるべきではありません。一度もない。読者のために。

あなたの特定の問題は慣習とはほとんど関係がないと思いますが、具体的な命名の問題Listsはインターフェイスのようには聞こえません。Listします。ただし、その場合、実装クラスにはList_DoublyLinkedand List_SinglyLinked(または、話しているリストの種類) のような、より具体的な名前が付けられます。

于 2011-10-27T17:59:53.780 に答える