https://www.amazon.co.jp/dp/4797327030/ref=cm_sw_r_li_dp_U_-ZlpCbPVQHQFA
これを読んでRubyで書き直すよ
Rubyでのデザインパターンコードとしてこのリポジトリを参考にしたよ
他に参考にした記事だよ
【初心者向け】Rubyによる使えるデザインパターン(GoF)
矢印の△部分は、サブクラスからスーパークラスに対して伸びる。 javaのextendsは継承元を指定する。
class HogeClass extends FugaClass {
}
クラスの四角形は クラス名 → フィールド名 → メソッド名
矢印の△部分は、実装クラスからインターフェースに対して伸びる。 javaのimplementsはインターフェース側で実装されたメソッドの内部処理を実装するために使用する。
interface側では何も実装しない。(ぽい)
interface Printable {
abstract void print();
abstract void newPage();
}
class PrintClass implements Printable {
void print() {
// implement something
}
void newPage() {
// implement something
}
}
- がついている場合publicなメソッド or フィールドを表す。
- がついている場合privateなメソッド or フィールドを表す。
#
がついている場合protectedなメソッド or フィールドを表す。 ~ がついているのは同じパッケージ内からのみアクセスできるメソッド or フィールドを表す。
AがBを使う時は A ➡ B という➡で表現される。