*

Java

Singleton パターン

  • あるクラスのオブジェクトを1個だけ作って共有したい場合に使用
  • システムの起動から終了までの間に、そのクラスのオブジェクトが1個しか存在しないことを保証できる。

Factory Method パターン

概要
  • あるサブクラスと別のサブクラスを必ずペアにして使ってもらいたい
  • あるクラスを継承してサブクラスを作ることにより機能を拡張しようとするときに使わるパターン
  • 既存のクラスを繰り返し拡張して新しいサブクラスの種類を増やしていっても、どのサブクラスとサブクラスを組み合わせて使えばいいのか仕様等と見ながら判断する必要がなくなる。

デザインパターンの概要

メインページにアップする時間がないので、忘れる前の備忘記録

デザインパターンとは

  • これまでに多くのエンジニアによって導き出されてきた「良いクラス設計の結果」から特徴を抽出し単純化してまとめたもの。
  • 最も有名なデザインパターン集に「GoFのデザインパターン」がある。
  • GoF(ゴフ)とは「The Gang Of Four」の略で、エリック・ガンマ、リチャード・ヘルム、ラルフ・ジョンソン、ジョン・ブリシディースの4人を指している。
    GoFのデザインパターンは、23種類ある。

インスタンス変数とクラス変数 (Java)

  1. メンバ
    • クラスの特性として参照可能な変数(フィールド)やメソッドのこと
  2. メンバ変数(インスタンス変数)
    • メンバ変数は、オブジェクトの状態を表す属性を保持するためのフィールド
    • 修飾子staticを指定されていないメンバ変数は、インスタンス毎に確保される変数となり、インスタンス変数とも呼ぶ。
    • そのクラスのオブジェクトへの参照が存在する限り、メモリ上に保持される
      (オブジェクトとともに持続し続ける変数)
  3. クラスメンバ変数(クラス変数)
    • static修飾子が付与されたもの
    • クラス対応に1つだけ存在するメンバ変数。
    • オブジェクトごとに存在するインスタンス変数とは異なりオブジェクトを生成 しなくてもアクセスは可能。
    • インスタンス変数と異なりクラス単位で管理されている。
  4. ローカル変数
    • メソッド内やメソッド引数で定義される変数
    • 有効範囲(スコープ)は、当該メソッド内でしか生きられない。
    • メソッド内のブロック内部で定義された場合は、そのブロック内から制御が外れるとメモリ上から破棄される。

 

flish()とclose() (Java)

  • flush()
    1. 何度でも実行できる
    2. 実行した後でもwrite()メソッドを使って書きこみを行うことができる。
    3. 単に内部バッファに溜まっているデータを出力先に書きだす処理。
      (ストリームを閉じずにバッファの内容を強制的に物理デバイスに出力する。)
  • close()
    1. (該当インスタンスに対して)一回しか実行できない
    2. 実行後にwrite()メソッドを使用するとIOExceptionがスローされる
    3. 内部バッファに溜まっているデータを出力先に書きだした後、内部バッファと出力先を閉じてそれ以上書きこみを受け付けないようにする処理。
    4. (フラッシュされていなければフラッシュしてから)そのストリームを閉じる。