Help us understand the problem. What is going on with this article?

なぜデザインパターンは必要か

More than 1 year has passed since last update.

最初に

デザインパターンの内容を詳しく紹介する記事ではありません。
なるほど、覚えておきたい!というモチベーションをアップさせるための記事です。

対象

動くプログラムを書ける人。
でもオブジェクト指向を活用した書き方はできてない人。

デザインパターン例(Adapter パターン)

そもそもデザインパターンとは、をAdapterパターンで紹介します。

もともと下記のクラスがありました。

Adaptee.java
public class Adaptee{
    public void method1(){
     System.out.println("method1");
    }

    public void method2(){
     System.out.println("method2");
    }
}

ここで、method1()、method2()と同じ機能をnewMethod1()、newMethod2()
をインタフェースとして実装してほしい、と言われたとします。
デザインパターンを知らないでこの要求があった場合、
Adapteeクラス内に実装しようとするのではないでしょうか。
それをAdapterパターンに即すと下記のようになります。

まず要求インタフェース(メソッド)が定義されたを含む下記クラスを作成します。

Target.java
public interface Target{
    public abstract void newMethod1();
    public abstract void newMethod2();
}

それからTarget.javaとAdaptee.javaを取り込んだ下記クラスを作成します。

Target.java
public class Adapter extends Adaptee implements Target{
    public void newMethod1(){
     method1();
    }

    public void newMethod2(){
     method2();
    }
}

使うときは下記です。

Client.java
public class Client{
    public static void main(String[] args){
    Target target = new Adapter();
    target.newMethod1();
    target.newMethod2();
    }
}

こんな感じで、こうゆうときはこうゆう風に書く!という定石集的なものがデザインパターンです。

メリット

・プログラムを組むときの方針がわかる
パターンが自分の中にあれば、それが適応できるプログラムに出会ったとき1から作るより遥かに楽です。
また、パターンを丸暗記する必要もなく、概要だけ把握し、そのパターンに出会ったときに読み返せばよいのです。

・他者のコードの意図が読めるようになる
自分が作る際だけでなく、他の人のコードを読んだときに「あ、これはあのパターン」と思えるようになります。
そしてそう思えるということは、コードの意図も読み取れるということです。

参考にしたサイト

http://www.ie.u-ryukyu.ac.jp/~e085739/java.it.6.html

参考にした本

増補改訂版Java言語で学ぶデザインパターン入門
デザインパターンといえばこれ、という本です。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away