FC2ブログ

30代を生きるエンジニア備忘録

Qiitaや気になったことをメモ!!

Javaアーキテクチャ設計とDI




Dependency Injection (DI) とは、コンポーネント(クラス)の直接の依存関係を取り除き、実行時やコンパイル時にその依存関係を注入するデザインパターンのこと。

各コンポーネントはインタフェースへ依存するようになり、保守性が向上する。
インタフェースの実装クラスを差し替えることが容易にできるようになるので、テスト時におけるオブジェクトのモックやスタブへの差し替えもずっと楽に行えるようになる。

<<様々な DI コンテナ>>
現在、下記に挙げる DI コンテナが提供されている。

◆Java で使用する DI コンテナ
Google Guice
Spring Framework
Seasar2
Dagger

◆Android 向けのもの
RoboGuice
Dagger
Proton
Transfuse
Andro-Inject

<参考>
アーキテクチャ設計とDI
http://mixi-inc.github.io/AndroidTraining/advanced/3.02.architecture-and-di.html





  1. 2022/08/18(木) 07:25:14|
  2. Java
  3. | トラックバック:0
  4. | コメント:0

ArrayList型からString配列に変換する

Javaメモ -- ArrayList型からString配列に変換する




public class Sample {

public static void main(String args[]){

// StringのArrayListを作成
ArrayList list = new ArrayList();

list.add("A");
list.add("B");
list.add("C");

// ArrayListをString配列に変換する
String[] s = (String[])list.toArray(new String[0]);

// String配列を画面表示する
for (int i = 0; i < list.size(); i++) {
System.out.println(s[i]);
}
}
}



参考にしたサイト<
  1. 2022/07/23(土) 22:01:37|
  2. Java
  3. | トラックバック:0
  4. | コメント:0

List構造 コレクションクラス


List構造は、要素を順番付けして管理するデータ構造です。

「ArrayList」「LinkedList」の2種類があります。

要素がインデックス(番号)順に並んでいるので、番号を指定して要素の取得、挿入、更新、削除ができます。

また、Iteratorや拡張for構文を使って先頭から順番に要素を取得することも出来ます。
ArrayListは要素の取得が早いが挿入や削除が遅い、LinkedListは要素の挿入や削除は早いが取得が遅いという特徴があります。

List構造は、要素の重複は可能です。




public class Sample {

public static void main(String args[]){
List list = new ArrayList<>();
System.out.println(list.size()); // 0
list.add("Apple");
list.add("Orange");
list.add("Lemon");
System.out.println(list.size()); // 3

for (int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
}
}


参考にしたサイト

  1. 2022/07/22(金) 21:26:23|
  2. Java
  3. | トラックバック:0
  4. | コメント:0

Java 初期化の話し



Javaメモ1





public class Sample {

public Sample() {
// コンストラクタ
}

public void initialize(){
// 初期化処理
}

}



イニシャライザ(initializer)とは、クラスが初期化されたときやインスタンスが生成されたときに、その直後に変数を初期化します。

   イニシャライザには「インスタンスイニシャライザ」と「staticイニシャライザ」の2種類が存在します。

コンストラクタはクラスをインスタンス化するときに実行される。


  

イニシャライザとコンストラクタの実行優先順位



イニシャライザとコンストラクタの実行優先順位は以下となります。


  ①staticイニシャライザ


  ②インスタンスイニシャライザ


  ③コンストラクタ


もしイニシャライザとコンストラクタが同じ変数へ代入をする場合は、最後に実行されるコンストラクタの結果が初期値となります。

  1. 2022/07/22(金) 20:34:11|
  2. Java
  3. | トラックバック:0
  4. | コメント:0