私はRAW ソケットに関して肯定応答と再送信トランスポート プロトコルを実装しています。そのような場合、 のサブクラスが必要です。メソッドを実装するときは、次のようなものが必要です。SocketImpl
accept
protected void accept(SocketImpl s) {
...
s.copy(socket);
}
whereは、すでに初期化されているオブジェクトにコピーする必要がsocket
ある、既に計算されたオブジェクトです。つまり、 sourceを targetにコピーする変更可能な copy メソッドが必要です。存在することは知っていますが、新しいオブジェクトを返し、必要なのは mutateです。SocketImpl
SocketImpl
s
s.copy(socket)
socket
s
Object clone()
s
ところで、この場合のパラメーターの変更は壊れた設計だと考える人もいます。Java 標準ライブラリの例はこれだけではありません。of class は別の例です。しかし、これが Sun/Oracle のエンジニアが設計した方法です。なぜこれが悪いデザインなのか知りたいs
implAccept(Socket s)
ServerSocket
一見すると、 ;と同等の一般的な浅いtarget.copy(source)
場所を提供することには意味があるように思えます。しかし、それは存在しないため (おそらく正当な理由で説明してください)、唯一の方法はカスタムのフィールドごとのコピー メソッドをプログラムすることです。target = souce.clone()
target = new TheClass(); target.copy(source)
私は正しいですか?ありがとう。