2012年11月26日月曜日

Adapterパターン(アダプター・パターン)

Adapterパターンは構造に関するパターンのひとつです。

互換性のないさまざまなインターフェースを持つクラス(Adaptee役)に修正を加えることなく、
利用者が望むインターフェース(Target役)で利用できるようにAdapter役が変換します。
Adaptee役を包み込むような形になることからラッパー(Wrapper)と呼ぶこともあります。
Adapteeを継承するやり方と、インスタンスとして保持し、委譲するやり方があります。

継承によるAdapterパターン Adapter中のメソッドからAdapteeのメソッドを呼ぶ
継承によるAdapterパターン・・・・・Adapter中のメソッドからAdapteeのメソッドを呼ぶ   


委譲によるAdapterパターン・・・・・Adapter中にAdapteeインスタンスを作成し、インスタンスのメソッドを呼ぶ

2012年11月22日木曜日

Template Methodパターン(テンプレート・メソッド・パターン)

Template Methodパターンは振る舞いに関するパターンのひとつです。

処理の流れは同じなんだけど、一部の処理を作る方法



スーパークラスにおおまかな処理の流れを実装し(抽象クラス、抽象メソッド)
子クラスで一部の違う処理を実装します(クラスの拡張)
・・・無意識に使われているデザインパターンです。

2012年11月21日水曜日

Compositeパターン(コンポジット・パターン)

Cmpositeパターンは構造に関するデザインパターンのひとつです。

容器と中身を同一視するパターンで、木構造を伴う再帰的なデータ構造


Leaf(葉)・・・中身
Composite(複合体)・・・容器
Component・・・すべてのクラスに共通なインターフェースのデフォールトの振る舞いを定義
Client・・・Main処理、コンポジトパターンを使用する側

Iteratorパターン(イテレータ・パターン)

Iteratorパターンは振る舞いに関するデザインパターンのひとつです。

ある集合体の要素1つ1つに、順次アクセスする方法
     for (int i = 0; i < data.length; i++) {
         System.out.println(data[i]);
     }
こういうのを、集合体で実現するためのパターンです。

Iteratorパターン
Iteratorパターン 図のソース(dot)
 
クラス図左側
・Aggregate(集合体)・・・Iteratorを作り出すインタフェース
・ConcreteAggregate(具体的な集合体)・・・Aggregateを実装したクラス
     iteratorメソッド:ConcreteIteratorオブジェクトを返す。

クラス図右側
・Iterator(反復子)・・・要素を順番にスキャンしていくインタフェース
・ConcreteIterator(具体的な反復子)・・・Iteratorを実装したクラス
    nextメソッド:indexの位置にあるオブジェクトを返し、indexをインクリメントする。
    hasNextメソッド:次の要素があればTrue、無ければFalseを返す。

デザインパターンのおさらい

初級プログラマのMOTIです。
中級を目指して勉強中です・・。
何か間違いやアドバイスなどがありましたら教えてください。

今日はデザインパターンのおさらいをします。

知っていれば開発時の会話もスムーズにできるし
 (パターン名を聞くだけで、
  どういう種類のクラスやインタフェースがあって
  それらが互いにどういう関係にあるかがわかります。)

なにより、クラス名、メソッド名を見るだけで使い方のイメージがつくようになります。
よく使われるデザインパターンだけでも知っておくと便利ですね。


以下はデザインパターン考案者の言葉です。
  「コンピュータのプログラミングで、
  素人と達人の間ではびっくりするほどの生産性の差があるが、
  その差はかなりの部分が経験の違いからきている。
  達人は、さまざまな難局を、何度も何度も耐え忍んで乗り切ってきている。
  そのような達人たちが同じ問題に取り組んだ場合、
  典型的にはみな同じパターンの解決策にたどり着くのだが、
  これがデザインパターンである (GoF)。」

達人者達がたどり着いた典型的なパターン、身に着けておいて損はないです。

2012年11月20日火曜日

Androidの画面をぺろっとめくるサンプルコードと動き

ぺろっとめくれてスマホっぽいですね(*'-')



AndroidのAPIDemosのクラス構成図

初級プログラマのMOTIです。
中級を目指して勉強中です・・。
何か間違いやアドバイスなどがありましたら教えてください。

AndroidSDKのインストールフォルダの中のsamplesフォルダに
サンプルコードが入ってるので
ApiDemosプロジェクトのクラス構成を見てみました。

サンプルに多いのが
Activityクラスを継承したクラスと
BaseAdapterクラスを継承したクラスなのかな・・

名前から、使い方はなんとなくわかると思いますが、
サブクラスのソースをちょっとずつアップしていきますね。

クラス構成はこんな感じ。(注意:重いかも・・一応抜粋してあります。)








ロリポップ!なら月々105円から

WordPress、MovableTypeなどの簡単インストール、

アクセス解析、ウェブメーラーが標準装備!






プロペシア