[再印刷]のJava Beanは何がコンセプトですか?Java Beanは何のコンセプトですか?

Java Beanは何のコンセプトですか?

 
HTTPS:// www.cnblogs.com/jinhengyu/p/10258119.html

 



Java言語は、プロパティ、イベント、多重継承機能を欠いています。あなたはJavaプログラムでオブジェクト指向プログラミングのいくつかの一般的なニーズを実現したいのであれば、唯一のグルーコードの多くを手で書かれました。それは、このグルーコードや大会のJava Beanが通常モードで書かれています。これらの規則はのsetXXX、isXxx、addXXXListenerメソッド、XxxEventなど、getXXXメソッドが含まれます。ツールの合意された数の遵守は、クラスやライブラリーに使用することができます。

誰かが単独リンクリストクラスのJava実装を使用している場合たとえば、あなたが書くかもしれません。
// 编译成 java-int-list_1.0.jar
public final class JavaIntList { static class Node { public Node next; public int value; } public Node head; public int size; } 
リストのサイズに、上記の迅速なアクセス、リンクリストのサイズの変数のバッファのサイズを達成するために。次のように使用方法は以下のとおりです。
JavaIntList myList = new JavaIntList(); System.out.println(myList.size); 
JavaIntListの作者は良好であった、とのjava-INT-リストデータベース1.0のオープンソース版。ファイル名は、java-INT-list_1.0.jarです。リリース後は、それは、java-INT-list_1.0.jarを使用するために多くのユーザーを魅了しました。
ある日、筆者は、メモリを節約キャッシュサイズではない変数を行い、このようなコードを変更することを決めました。
// 编译成 java-int-list_2.0.jar
public final class JavaIntList { static final class Node { public Node next; public int value; } public Node head; public int getSize() { Node n = head; int i = 0; while (n != null) { n = n.next; i++; } return i; } } 

その後、バージョン2.0をリリースします。java-INT-list_2.0.jar。リリース後は、元のJava-INT-list_1.0.jarユーザーがバージョン2.0にアップグレードしました。これらのユーザーは、アップグレードプログラムは、自身がすべて壊れて発見した、サイズの変数が見つからないことを言います。だから、Javaの-INT-リストにライブラリを使用することを恐れ、もはや、殴ら食事のこれらのユーザーを置いていません。

この物語は、あなたが殴り殺されたくないことを教えてくれる、あなたは、下位互換性を維持しなければなりません。Java言語の設計における日だけでなく、この真実を知っています。だから、Javaの標準ライブラリ、このコードは、公共int型のサイズは表示されませんが、書き込みを開始します。
private int size; public int getSize() { return size; } 

getSizeのリアライズを変更するときに1日、後方互換性を壊さないようにすることを、ユーザーがのgetSizeの使用を開始することができます。そのような公共INTのgetSize(){戻りサイズ;}手口は、Java Beanです。

これは、Java BeanのようにA複雑な合意を必要としないので、2014は、C#、Scalaの幾何学的な新しいJavaオブジェクト指向言語自体は、共通言語は、これらの要求を実現する機能を提供します。

例えば、ScalaのScalaIntListのバージョンがある場合:
// 编译成 scala-int-list_1.0.jar
object ScalaIntList { final case class Node(next: Node, value: Int) } final class ScalaIntList { var head: ScalaIntList.Node = null var size: Int = 0 } 
ユーザーはこれを使用します。
val myList = new ScalaIntList println(myList.size) 
ある日、この中にあなたの気まぐれ:
// 编译成 scala-int-list_2.0.jar
object ScalaIntList { final case class Node(next: Node, value: Int) } final class ScalaIntList { var head: ScalaIntList.Node = null final def size: Int = { var n = head var i = 0 while (n != null) { n = n.next i++ } i } } 

ユーザーまたは静止は、後方互換性を壊さないことができます。だから、長いプログラムはスカラ座とJavaの相互作用を考慮していないとして、一般的に、あなたは、この大会のJava Beanのようにする必要はありません。

なお、ソースレベルの下位互換性とバイナリレベルに分け、Scalaは代わりにValまたはVAR最終デフワードのかかわらず、ソースレベルの下位互換性、または下位互換性のバイナリレベルの、受けません破壊。C#は後方互換性を壊すことなく、ソースレベルが、フィールド属性に変更されるが、下位互換性のバイナリレベルを破壊します。これは、Microsoftのコーディング標準につながったC#の設計上の欠陥は、公共の場の使用を禁止する必要があります。


Java言語は、プロパティ、イベント、多重継承機能を欠いています。あなたはJavaプログラムでオブジェクト指向プログラミングのいくつかの一般的なニーズを実現したいのであれば、唯一のグルーコードの多くを手で書かれました。それは、このグルーコードや大会のJava Beanが通常モードで書かれています。これらの規則はのsetXXX、isXxx、addXXXListenerメソッド、XxxEventなど、getXXXメソッドが含まれます。ツールの合意された数の遵守は、クラスやライブラリーに使用することができます。

誰かが単独リンクリストクラスのJava実装を使用している場合たとえば、あなたが書くかもしれません。
// 编译成 java-int-list_1.0.jar
public final class JavaIntList { static class Node { public Node next; public int value; } public Node head; public int size; } 
リストのサイズに、上記の迅速なアクセス、リンクリストのサイズの変数のバッファのサイズを達成するために。次のように使用方法は以下のとおりです。
JavaIntList myList = new JavaIntList(); System.out.println(myList.size); 
JavaIntListの作者は良好であった、とのjava-INT-リストデータベース1.0のオープンソース版。ファイル名は、java-INT-list_1.0.jarです。リリース後は、それは、java-INT-list_1.0.jarを使用するために多くのユーザーを魅了しました。
ある日、筆者は、メモリを節約キャッシュサイズではない変数を行い、このようなコードを変更することを決めました。
// 编译成 java-int-list_2.0.jar
public final class JavaIntList { static final class Node { public Node next; public int value; } public Node head; public int getSize() { Node n = head; int i = 0; while (n != null) { n = n.next; i++; } return i; } } 

その後、バージョン2.0をリリースします。java-INT-list_2.0.jar。リリース後は、元のJava-INT-list_1.0.jarユーザーがバージョン2.0にアップグレードしました。これらのユーザーは、アップグレードプログラムは、自身がすべて壊れて発見した、サイズの変数が見つからないことを言います。だから、Javaの-INT-リストにライブラリを使用することを恐れ、もはや、殴ら食事のこれらのユーザーを置いていません。

この物語は、あなたが殴り殺されたくないことを教えてくれる、あなたは、下位互換性を維持しなければなりません。Java言語の設計における日だけでなく、この真実を知っています。だから、Javaの標準ライブラリ、このコードは、公共int型のサイズは表示されませんが、書き込みを開始します。
private int size; public int getSize() { return size; } 

getSizeのリアライズを変更するときに1日、後方互換性を壊さないようにすることを、ユーザーがのgetSizeの使用を開始することができます。そのような公共INTのgetSize(){戻りサイズ;}手口は、Java Beanです。

これは、Java BeanのようにA複雑な合意を必要としないので、2014は、C#、Scalaの幾何学的な新しいJavaオブジェクト指向言語自体は、共通言語は、これらの要求を実現する機能を提供します。

例えば、ScalaのScalaIntListのバージョンがある場合:
// 编译成 scala-int-list_1.0.jar
object ScalaIntList { final case class Node(next: Node, value: Int) } final class ScalaIntList { var head: ScalaIntList.Node = null var size: Int = 0 } 
ユーザーはこれを使用します。
val myList = new ScalaIntList println(myList.size) 
ある日、この中にあなたの気まぐれ:
// 编译成 scala-int-list_2.0.jar
object ScalaIntList { final case class Node(next: Node, value: Int) } final class ScalaIntList { var head: ScalaIntList.Node = null final def size: Int = { var n = head var i = 0 while (n != null) { n = n.next i++ } i } } 

ユーザーまたは静止は、後方互換性を壊さないことができます。だから、長いプログラムはスカラ座とJavaの相互作用を考慮していないとして、一般的に、あなたは、この大会のJava Beanのようにする必要はありません。

なお、ソースレベルの下位互換性とバイナリレベルに分け、Scalaは代わりにValまたはVAR最終デフワードのかかわらず、ソースレベルの下位互換性、または下位互換性のバイナリレベルの、受けません破壊。C#は後方互換性を壊すことなく、ソースレベルが、フィールド属性に変更されるが、下位互換性のバイナリレベルを破壊します。これは、Microsoftのコーディング標準につながったC#の設計上の欠陥は、公共の場の使用を禁止する必要があります。

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/12161646.html