ホームページ >ウェブフロントエンド >jsチュートリアル >TypeScript の単一責任原則を理解する: クイックガイド

TypeScript の単一責任原則を理解する: クイックガイド

WBOY
WBOYオリジナル
2024-08-26 21:40:05884ブラウズ

Understanding Single Responsibility Principle in TypeScript: A Quick Guide

単一責任原則の主な定義では、クラスが変更する理由は 1 つだけである必要があると述べています。より深く理解するために、このステートメントを分解してみましょう。

渡したテキストを操作するクラスがあるとします。単一責任原則では、作成するクラスはテキストの操作のみを担当し、そのクラスが実行するその他のアクションはクラスの一部であるべきではないとします。クラス。

そのようなクラスの例をとり、それをどのようにリファクタリングできるかを見てみましょう:

class TextManipulator {
  text: string;

  constructor(text: string) {
    this.text = text;
  }

  appendText(newText: string) {
    return this.text.concat(newText);
  }

  findAndReplace(word: string, replacementWord: string) {
    if (this.text.includes(word)) {
      this.text.replace(word, replacementWord);
    }
    return this.text;
  }

  printText() {
    console.log("The text is ", this.text);
  }
}

上記のコードでは、クラスが print アクションも実行していることがわかります。これは単一責任の原則を破ります。 2 つの新しいクラスを作成することでコードをリファクタリングできます

class TextManipulator {
  private text: string;

  constructor(text: string) {
    this.text = text;
  }

  appendText(newText: string) {
    return this.text.concat(newText);
  }

  findAndReplace(word: string, replacementWord: string) {
    if (this.text.includes(word)) {
      this.text.replace(word, replacementWord);
    }
    return this.text;
  }

  getText() {
    return this.text;
  }
}

class PrintText {
  formattedText: TextManipulator;

  constructor(formattedText: TextManipulator) {
    this.formattedText = formattedText;
  }

  printText() {
    console.log("The text is ", this.formattedText.getText());
  }
}

リファクタリングされたコードには、別々のアクションを実行する 2 つの別々のクラスがあります。

なぜ単一責任原則なのか

単一責任原則を導入すると、次のことを達成できます:-

  1. コードの構成と保守性の向上
  2. コードの再利用性の向上
  3. 読みやすさの向上
  4. デバッグとテストが簡単になりました

考慮すべき事項

単一責任の原則を実装するコツは、クラスの単一責任が何であるかを知ることです。ただし、すべての開発者はクラスの責任について独自のビジョンを持っており、実装方法に関する指示がないため、独自の解釈しか残されていません。

ビジネスまたはアーキテクチャの観点から、実際には同じことを行っている 2 つのクラスを分離する場合が考えられます。これにより、両方のクラスが互いに密結合した、より複雑なコードが作成される可能性があるため、SOLID原則

の唯一の目的が減退してしまいます。

新しいクラスを作成するときに重要なのは、考えすぎないことです

以上がTypeScript の単一責任原則を理解する: クイックガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。