Scalaのシングルと関連オブジェクトを学習大きなデータラインを共有するのが良いプログラマ
シングルトンスカラ
オブジェクトSingletonDemo {
DEFメイン(引数:配列[文字列]):単位= {
ヴァルS = SessionFactoryの
println(s.getSession)
println(s.getSession.size)が得られたいくつかのセッションオブジェクトを//.size
}
}
オブジェクトのSessionFactory {
println( "のSessionFactoryが実行されました")
//カウンタ
ここで、i = 5
//オブジェクトの配列保存されたセッション
ヴァル・セッション=新しいArrayBuffer [セッション]()
一方、(I> 1){
println(「実行されている間」)
sessions.append(新しいセッション)
I - = 1
}
//セッションオブジェクトを取得します。
DEFのgetSession =セッション
}
クラスセッション{
}
関連するオブジェクト
シングルトンオブジェクトは、お互いにアクセスできるクラスに関連付けられているオブジェクト間のコンパニオンオブジェクトを含んでいてもprivate修飾子privateフィールドと属性
まず、オブジェクトは、オブジェクトによって定義されたオブジェクトシングルトン、シングルトンオブジェクトが関連付けられています
Scalaで、2つのシングルトンがあります
自動的に特定のクラスのシングルトン・オブジェクトに関連付けられていない1.関連付けは、独立したオブジェクトと呼ばれる - >スタンドアロンオブジェクト
クラスに関連付けられた2シングルトンオブジェクト、シングルトンオブジェクト・クラスは、同じ名前のクラスであり、関連オブジェクトと呼ばれる - >コンパニオンオブジェクト
クラスcompanionObject {
ID = 0でした
プライベートヴァル名=「zhaoxiaodan」
DEF printContent()= {
println(名+ companionObject.Constant)
}
}
オブジェクトcompanionObject {
定数=プライベートvalが「私の女神です」
DEFメイン(引数:配列[文字列]):単位= {
ヴァル・共同=新しいcompanionObject
co.id = 8
println(co.id)
println(co.name)
co.printContent()// zhaoxiaodanは私の女神です
}
}
そして(典型的にはコンパニオン・オブジェクト・クラスで定義された方法を適用する)適用を解除適用
コンパニオンオブジェクトクラスの初期化動作を行うために、方法一般呼ば注入法を適用
メソッドは、パラメータリストとマスターリストの統一構造を適用する必要はありません。
一般的方法の適用を解除抽出方法は、抽出方法は、適用を解除オブジェクトと値コンストラクタの固定数を使用してもよいです
オプション値は、これらの値をカプセル化するためのいくつかの内部のオブジェクトが存在するかどう適用を解除する方法は、オプションを返します
クラスApplyDemo(ヴァル名:文字列、ヴァル年齢:INT、ヴァルfaceValue:INT){
}
オブジェクトApplyDemo {
//注入法
デフ適用されます(名前:文字列、年齢:INT):ApplyDemo = {
新しいApplyDemo(名前、年齢、faceValue = 80)//初期化
}
//抽出
DEF適用を解除(applyDemo:ApplyDemo):オプション[(文字列、INT、INT)] = {
IF(applyDemo == NULL){
無し
}他{
いくつかの(applyDemo.name、applyDemo.age、applyDemo.faceValue)
}
}
}
オブジェクトApplyTest {
DEFメイン(引数:配列[文字列]):単位= {
ヴァルapplyDemo = ApplyDemo( "切除。OF"、18)
applyDemoマッチ{
ケースApplyDemo( "切除。"、年齢、faceValue)=> printlnを(S "名:切除、年齢:$年齢、FV:$ faceValue")
ケース_ =>のprintln( "nullです")
}
}
}