JavaScript에서 팩토리 패턴과 생성자 패턴의 차이점.

9963 단어 javascriptbeginners
코드 반복은 생성해야 하는 소프트웨어에 대한 논리를 작성할 때 피할 수 있는 것입니다.
추상화 논리는 발생할 수 있는 반복을 피하기 위해 사용할 수 있는 전략입니다.

이 기사가 끝날 때까지 방법을 배웠을 것입니다.
  • 공장 패턴 사용
  • 생성자 패턴 사용
  • 생성자와 팩터리 패턴 간의 차이입니다.

  • 공장 패턴



    프로그래밍의 팩토리는 객체를 반환하는 함수를 설명합니다...

    function myFunc() {
      let obj = {};
      return obj;
    }
    
    const newObj = myFunc();
    


    팩토리는 반환하는 개체에 대한 속성 및 메서드를 설정하는 데 사용할 수 있습니다. 아래 코드 조각에서 makeAnimal 함수는 동물을 나타내는 다른 개체를 만드는 데 사용됩니다. 팩토리를 사용할 때 속성 값은 함수의 인수를 통해 반환된 객체에 할당됩니다.

    function makeAnimal(name, legs, horns) {
      let animal = {};
    
      // Set properties for the animal object
      animal.name = name;
      animal.legs = legs;
      animal.horns = horns;
    
      return animal;
    }
    
    const newAnimal = makeAnimal('Cow', 4, 2);
    
    console.log(newAnimal.name); // Output: Cow
    console.log(newAnimal.legs); // Output: 4
    console.log(newAnimal.horns); // Output: 2
    


    반환할 개체의 속성에 대한 기본값을 만드는 데에도 팩토리를 사용할 수 있습니다.

    function makeAnimal(name: string, legs: number, horns: number) {
      let animal = {};
    
      // Set properties for the animal object
      animal.name = name;
      animal.legs = legs;
      animal.horns = horns;
      animal.hasFur = true; //Every new object returned from this function will have the `hasFur` property and it's value will always be true unless it's changed.
    
      return animal;
    }
    t
    const newAnimal = makeAnimal('Cow', 4, 2);
    
    console.log(newAnimal.name); // Output: Cow
    console.log(newAnimal.horns); // Output: true
    


    생성자 패턴



    이것은 자바 스크립트에서 객체를 생성하는 데 사용되는 또 다른 패턴입니다. 팩토리와 마찬가지로 생성자는 객체를 반환하는 함수입니다.
    당신은 또한 선언 할 수 있습니다
    아래 코드 조각을 참조하십시오.

    function Animal(name: string, legs: number, horns: number) {
      // Set properties for the animal object
      this.name = name;
      this.legs = legs;
      this.horns = true; //Default property
    }
    
    const newAnimal = new Animal('Cow', 4, 2);
    
    console.log(newAnimal.name); // Output: Cow
    


    또는 구문 설탕을 사용하여 Javascript에서 생성자를 선언하는 더 멋진 방법이 있습니다.

    class Animal {
      constructor(legs) {
        this.legs = legs;
        this.printLegs = function () {
          console.log('Animal has %d legs:', this.legs);
        },
          this.name = 'Animal';
      }
    }
    
    let animal = new Animal(4);
    
    animal.printLegs();
    //Output : Animal has 4 legs
    




    생성자와 팩토리의 차이점
  • 구문.
    팩토리는 new 키워드를 사용하지 않는 반면 생성자는 사용합니다. 위의 예를 참조하십시오.
  • 생성자는 프로토타입 속성에서 상속하고 true에서 instanceOf factoryFunction를 반환합니다.
    반면에 팩토리는 prototype 속성에 대한 참조를 상속하지 않고 false에서 instanceOf factoryFunction를 반환합니다.
  • 좋은 웹페이지 즐겨찾기