忍者ブログ
よくわからないことを調べて解説してみるブログ。

2024

0505
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2017

0329
・テレスコーピングコンストラクタ
 コンストラクタに初期化パラメータをすべて引数にとる実装方式。
 必須のパラメータが可変である場合、可変パターンごとにコンストラクタに用意する必要がある。
 クラスが持つ初期化対象の変数がN個だとしたら、N!の数だけコンストラクタを必要とする可能性がある。

・JavaBeansパターン
 new オブジェクト後に、パラメータごとに用意したsetメソッドで初期化する。
 
 メリット
  パラメータが大量でも必要分だけの記述で対応可能。
 デメリット
  コードが分断される。
  setメソッドは実装上publicになるため、初期化時のみの利用というような制限ができない。

・ビルダーパターン
 クラスの内部にstaticなビルダークラスを用意する。
 Builderクラスは、必須パラメータを引き受けるコンストラクタを持ち、
 任意パラメータに対する初期化メソッドを持つ。
 この初期化メソッドは返却型にBuilderクラスを指定する。
 
 初期化例
 Car car = Car.Builder(100, 120).setMaxSpeed(110, "Km/h").setHoyeel(4).build();
    //雑ですみません。

   メリット
  テレスコーピングコンストラクタパターンと
  JavaBeansパターンのデメリットを解消する
 デメリット
  パラメータ数が少ないときにはあまり効果的ではない(しかし、パラメータの拡張性に富んでいるため間違いになることはないだろう)。


拍手[0回]

PR

2017

0329
メリット
・コンストラクタに名前を付けられる
・返却型にそのサブタイプを選択できる
・シングルトンのインスタンスを返却できる

デメリット
・クラス内の他のメソッドと見分けがつかない
 ファクトリー系なのかそれ以外なのか。

読書メモ
・ファクトリーメソッドを持つクラスは出来ればファクトリークラスでありたい
 それが出来なければ、ラッパークラス型のvalueOfの実装を見てどういった考え方か確認する。

・builderと呼ばれる方式はこの後出てくるのかな?

拍手[0回]

2016

0626
OCJP Gold 7(Java SE Programmer Ⅱ)に合格しました。
無料キャンペーンを利用して、4回受けていました。
なのであまりえらそうなことは書けません。

利用したのは下記の本です。
問題演習はやっておいて損はないです。


絶対に合格するなら、
テスト範囲の標準APIについて、
・JavaDocを読み込んでいること
 概要説明の記述を見て何のクラスのことか思い浮かべればベスト。

・クラス図を描けること
 CollectionAPIやDBアクセス周りのクラス構成の理解。
 これをやっておくと、~Setに対する理解が非常に深まりますし、
 Javaそのものの考え方にも触れることが出来ます。

・一連のメソッドの動作仕様の理解
 クラスの責務を果たすメソッドの複数回実行。
 クラスの責務を補佐するメソッドの実行後の責務を果たすメソッド実行時の挙動。

・各メソッドの矛盾した利用による動作
 例えば、
    resultSet.absolute(1);
    resultSet.next();を2回実行したときの挙動は?

なぜ8ではなく7かというとラムダに苦手意識があるためです・・・。
いずれUpdate試験は受ける予定です。

拍手[0回]

2016

0521
public class Main {
	public static void main(String[] args) {
		A a = new A();
		Thread aThread = new Thread(a, "AThread");
		Thread bThread = new Thread(a, "BThread");
		System.out.println("aThread.getState() :" + aThread.getState());
		aThread.start();
		System.out.println("aThread.getState() :" + aThread.getState());
		try {
			aThread.join();
		} catch (InterruptedException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
		System.out.println("aThread.getState() :" + aThread.getState());
		aThread.start();
	}
}
実行結果
aThread.getState() :NEW
aThread.getState() :RUNNABLE
aThread.getState() :TERMINATED
Exception in thread "main" java.lang.IllegalThreadStateException
at java.lang.Thread.start(Thread.java:705)
at thread.joinToStart.Main.main(Main.java:18)
上記のとおり、
new Thread():NEW
start()             : RUNNABLE
join() 後   :TERMINATED
となり、再度start()することはできない。

拍手[0回]

2016

0423
ITIL Foundationに合格いたしました。

勉強時間は20時間以下。
自社内では5時間以下の天才から30時間オーバーまで。

私は8割程度教科書を読みこみ、残りは2割は受験先に行く際の電車で読み込みました。


この資格は開発経験の有無が勉強必要時間に関係していると思います。

開発経験が無い場合は、活動の具体的なイメージがつきにくい方もいるかもしれません。
Foundationレベルなら丸覚えでもいけるかもしれません。


ITIL自体の有用性は非常にあると思います。
保有資格を増やすためだけに取るというより、今、将来にかけて、
今の現場や理想的な現場であるべき姿を追うために、どんな情報をどのタイミングで、管理・運用すべきなのか、を目指すために利用していきたいところです。

ITILが浸透した組織では、運用・管理自体が洗練され、そのうえコミュニケーションコストも低減してくものと思われます。体系的な基盤を持った組織におけるコミュニケーションは無駄が排除されているはずだからです。

拍手[0回]

次のページ忍者ブログ [PR] * Template by TMP >>
プロフィール
HN:
たんてーくん
性別:
非公開
フリーエリア
最新CM
[09/25 http://2017.bblbuy.com]
[09/24 http://www.japanform.com]
[09/23 http://www.japanform.com]
[09/22 http://www.japanform.com]
[09/21 http://2017.bblbuy.com]
ブログ内検索
忍者ブログ [PR]
* Template by TMP