1

ジェネリックを使用してスタックを実装しようとしています。

ここに私が持っているコンポーネントがあります、

1) インターフェース:

public interface stackInterface<T>{...}

2) 実装:

public class Stack<T> implements stackInterface<T>{...}

3) クライアント:

stackInterface<Integer> s=new Stack<Integer>();

私がやっていることは正しい方法なのか、それとも何か足りないのか知りたいだけです。

4

5 に答える 5

4

それは大丈夫に見えます。もちろん、まったく間違った命名規則は別として。

Java の型名は CamelCase を使用します。また、インターフェイスは、クラスと比較して特別に命名されていません。Java での通常の方法は、インターフェースStack<T>とクラスImplementationDetailStack<T>に cfという名前を付けることです。List<T>およびArrayList<T>またはLinkedList<T>

(個人的には、インターフェイス名を で始める .NET の慣例を好みますI。たとえばIStack、インターフェイスやStackデフォルトの実装についてはそうです。)

于 2012-08-26T09:48:49.897 に答える
2

これまでのところ、キャメルケースですべての型に名前を付けることと、インターフェイスで「インターフェイス」という言葉を使用しないことを除いて、とても良いです。インターフェイスを呼び出して、 のように基本的な実装原理を説明するStack実装を実装する必要があります。...Stack...ArrayList

一般に、インターフェイスには最も適切で短い名前を予約する傾向があります。これは、具体的な実装の型がインスタンス化式にのみ出現するのに対し、インターフェイスはメソッド シグネチャと変数の型のあらゆる場所に出現するためです。

于 2012-08-26T09:50:25.683 に答える
1

stackInterface には、Java 変換の命名の問題があります。それは StackInterface でなければなりません。

Java ネーミング変換 は、適切なコーディング方法です。

インターフェイス: 名前は CamelCase にする必要があります。

参照:http://java.about.com/od/javasyntax/a/nameconventions.htm http://www.javapractices.com/topic/TopicAction.do?Id=58

于 2012-08-26T09:50:16.350 に答える
1

java.util.Listインターフェイスのソース コードと、その実装クラスjava.util.ArrayListがジェネリックを使用しているのを確認することをお勧めします。そこから学び、コードに適用できます。

于 2012-08-26T09:51:41.373 に答える
0

命名規則を除いて、すべて問題ありません。ダンが提案したように、ListとArrayListでテイクを取ります。また、インターフェイスでインターフェイス名だけを使用し、デフォルトの実装ではインターフェイス名をImplに追加することもお勧めします。

public interface Stack <T> {

}

public class StackImpl<T> implements Stack {

}

Stack<String> defaultStack=new StackImpl<String>();

他の実装では、List-ArrayListスタイルの規則を使用することをお勧めします。

于 2012-08-26T10:07:41.450 に答える