最初に
デザインパターンの内容を詳しく紹介する記事ではありません。
なるほど、覚えておきたい!というモチベーションをアップさせるための記事です。
対象
動くプログラムを書ける人。
でもオブジェクト指向を活用した書き方はできてない人。
デザインパターン例(Adapter パターン)
そもそもデザインパターンとは、をAdapterパターンで紹介します。
もともと下記のクラスがありました。
public class Adaptee{
public void method1(){
System.out.println("method1");
}
public void method2(){
System.out.println("method2");
}
}
ここで、method1()、method2()と同じ機能をnewMethod1()、newMethod2()
をインタフェースとして実装してほしい、と言われたとします。
デザインパターンを知らないでこの要求があった場合、
Adapteeクラス内に実装しようとするのではないでしょうか。
それをAdapterパターンに即すと下記のようになります。
まず要求インタフェース(メソッド)が定義されたを含む下記クラスを作成します。
public interface Target{
public abstract void newMethod1();
public abstract void newMethod2();
}
それからTarget.javaとAdaptee.javaを取り込んだ下記クラスを作成します。
public class Adapter extends Adaptee implements Target{
public void newMethod1(){
method1();
}
public void newMethod2(){
method2();
}
}
使うときは下記です。
public class Client{
public static void main(String[] args){
Target target = new Adapter();
target.newMethod1();
target.newMethod2();
}
}
こんな感じで、こうゆうときはこうゆう風に書く!という定石集的なものがデザインパターンです。
メリット
・プログラムを組むときの方針がわかる
パターンが自分の中にあれば、それが適応できるプログラムに出会ったとき1から作るより遥かに楽です。
また、パターンを丸暗記する必要もなく、概要だけ把握し、そのパターンに出会ったときに読み返せばよいのです。
・他者のコードの意図が読めるようになる
自分が作る際だけでなく、他の人のコードを読んだときに「あ、これはあのパターン」と思えるようになります。
そしてそう思えるということは、コードの意図も読み取れるということです。
参考にしたサイト
参考にした本
増補改訂版Java言語で学ぶデザインパターン入門
デザインパターンといえばこれ、という本です。