7️⃣

[読書メモ]オブジェクト設計スタイルガイド 1章1節 with TypeScript

2024/01/27に公開

初めに

オブジェクト設計スタイルガイドを読みながら、TypeScriptでやるならどうやるかを考えながら書きました。
要約的に読める内容になっていると思うので、サクッと3分ぐらいで読める記事となっています。
https://www.oreilly.co.jp/books/9784814400331/

1章

初歩的な内容ばかりなので、各節のタイトルを見て説明できるなら飛ばしてok

1.1 クラスとオブジェクト

クラス:オブジェクトの動作定義をしたもの
インスタンスを生成すると、メソッドを呼び出すことができる

  • オブジェクトメソッド:インスタンスに対してのみ呼び出せる
  • スタティックメソッド:インスタンスなしでも呼び出せる
  • コンストラクタ:オブジェクトの使用前に準備をするためのメソッド
  • スタティックファクトリメソッド:クラスの新しいインスタンスを生成する方法
class Hello {
  public hello() {
    console.log("hello");
  }

  static hello() {
    console.log("static hello");
  }

  constructor(name: string) {
    if (!name) {
      throw Error("名前が無いよ!");
    }
  }

  static createDefault(): Hello {
    return new Hello("名無し");
  }
}

const K = new Hello("K"); // コンストラクタが使用される
// オブジェクトメソッド:インスタンスに対してのみ呼び出せる
K.hello();

// スタティックメソッド:インスタンスなしでも呼び出せる
Hello.hello();

try {
  const ng = new Hello(""); // コンストラクタが使用される
} catch (e) {
  console.log(String(e));
}

// スタティックファクトリメソッド:クラスの新しいインスタンスを生成する方法
const noName = Hello.createDefault();
noName.hello();

Discussion