>웹 프론트엔드 >JS 튜토리얼 >TypeScript의 단일 책임 원칙 이해: 빠른 가이드

TypeScript의 단일 책임 원칙 이해: 빠른 가이드

WBOY
WBOY원래의
2024-08-26 21:40:05880검색

Understanding Single Responsibility Principle in TypeScript: A Quick Guide

단일 책임 원칙의 기본 정의에 따르면 A 클래스는 변경할 이유가 하나만 있어야 합니다. 더 나은 이해를 위해 이 진술을 분석해 보겠습니다.

우리가 전달하는 텍스트를 조작하는 클래스가 있다고 가정해 보겠습니다. 단일 책임 원칙에 따르면 우리가 만든 클래스는 텍스트 조작에 대해서만 책임을 져야 하며 클래스가 수행하는 다른 작업은 텍스트 조작의 일부가 되어서는 안 됩니다. 수업.

이러한 클래스의 예를 들어 어떻게 리팩터링할 수 있는지 살펴보겠습니다.

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);
  }
}

위 코드에서 클래스가 인쇄 작업도 수행하고 있음을 알 수 있습니다. 이는 단일 책임 원칙을 위반합니다. 두 개의 새로운 클래스를 생성하여 코드를 리팩터링할 수 있습니다

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());
  }
}

리팩터링된 코드에는 별도의 작업을 수행하는 두 개의 별도 클래스가 있습니다.

단일 책임 원칙을 따르는 이유

단일 책임 원칙을 적용하면 다음을 달성할 수 있습니다.-

  1. 더 나은 코드 구성 및 유지 관리성
  2. 더 높은 코드 재사용성
  3. 가독성 향상
  4. 더 쉬워진 디버깅 및 테스트

고려해야 할 사항

단일 책임 원칙을 구현하는 비결은 우리 클래스의 단일 책임이 무엇인지 아는 것입니다. 하지만 개발자마다 책임에 대한 비전이 있고, 구현 방법에 대한 지침이 없기 때문에 각자의 해석만 남습니다.

실제로 비즈니스 또는 아키텍처 관점에서 동일한 작업을 수행하는 두 클래스를 분리하는 경우가 있을 수 있습니다. 이렇게 하면 두 클래스가 서로 긴밀하게 결합되어 더 복잡한 코드가 생성될 수 있으므로 SOLID 원칙

의 유일한 목적이 줄어듭니다.

새 클래스를 만들 때 지나치게 생각하지 않는 것이 핵심입니다

위 내용은 TypeScript의 단일 책임 원칙 이해: 빠른 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.