でざぱた

Iterator

ふと、HashMapやArrayListからの値を取得するときになぜIteratorを使用するのか? というのをきちんと説明できないと思ったので整理してみた。 理由1、統一されたインターフェースを使用できる(可読性があがる) 理由2、コレクションクラスの実装を知らなく…

Decorator

既存のクラスの機能を拡張したいが、 既存のクラスは変更したくない場合に間にDecoratorクラスを用いる。 BaseClass.java (既存のクラス) package gof; public class BaseClass { private int width; private int height; // コンストラクタ public BaseClas…

Adapter

既存のクラスのインタフェースを変更したいが、 既存のクラスは変更したくない場合に間にadapterクラスを用いる。 BaseClass.java (既存のクラス) package gof; public class BaseClass { private int width; private int height; // コンストラクタ public …

Mediator

画面の項目の状態などを一括してとりまとめるパターン。 Disableの制御などで使用するとよい。 MediatorLab.java package gof; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swin…

Template Method

Templateとなるクラスを用意し、必ず実装しなければならないメソッドを明示する。 TemplateClass.java (テンプレートとなるクラス) package gof; abstract class TemplateClass { // abstractで定義されたメソッドは実装必須にする。 abstract protected voi…

Singleton

システム内にインスタンスがひとつしか存在させなくする。 SingletonClass.java (シングルトンのクラス) package harada; import java.util.*; /* * Singltonのクラス */ public class SingletonClass { //自分自身を保持する変数 private static SingletonC…