Javascript

โ„๏ธ ์ „๋žต ํŒจํ„ด

frontChoi 2024. 11. 19. 07:39
๋ฐ˜์‘ํ˜•

 

๐Ÿฅน ์ „๋žต ํŒจํ„ด์ด๋ž€

์—ฌ๊ธฐ์ €๊ธฐ ์กฐ์‚ฌํ•œ ๋ฐ”๋กœ๋Š” ์ „๋žตํŒจํ„ด์€ ์•„๋ž˜์™€๊ฐ™๋‹ค

๋™์ผ ๊ณ„์—ด์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ •์˜ํ•˜๊ณ ,๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์บก์Аํ™”ํ•˜์—ฌ,์ƒํ˜ธ๊ตํ™˜ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค.

 

๋น„์Šทํ•œ ๊ณ„์—ด์˜ ๊ฐ์ฒด๋ฅผ if/else๋ฌธ ๋Œ€์‹ ์—, ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ดํ•ด๊ฐ€ ๋œ๋‹ค.

๋‹ค๋งŒ ์ด๋ ‡๊ฒŒ ํ–ˆ์„๋•Œ๋Š” if/else์œผ๋กœ ํ•˜์ง€ ์•Š๋Š” ์žฅ์ ์€ ์žˆ์ง€๋งŒ, ๊ฐ์ฒด์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค.

 

 

๐Ÿ˜š if/else์œผ๋กœ ์ž‘์„ฑ

Video๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ๊ณ , play ๋ฉ”์†Œ๋“œ์—์„œ๋Š” ์ƒ์„ฑ์ž์—์„œ ์–ด๋–ค๊ฐ’์„ ๋ฐ›๋А๋ƒ์— ๋”ฐ๋ผ log๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜จ๋‹ค.

๊ทธ๊ฒƒ์„ If/else ๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค

class Video {
  constructor(videoType) {
    this.videoType = videoType;
  }
  play() {
    if (this.videoType === "Streaming") {
      console.log("Play StreamingVideo");
    } else if (this.videoType === "BrandVideo") {
      console.log("Play BrandVideo");
    } else {
      console.log("Play CarPurPoseVideo");
    }
  }
}

const video1 = new Video("Streaming");

const video2 = new Video("BrandVideo");

const video3 = new Video("CarPurPose");

video1.play();
video2.play();
video3.play();

 

์œ„์™€ ๊ฐ™์ด ํ–ˆ์„๋•Œ๋Š” if/else๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ์กฐ๊ฑด์ด ๋Š˜์–ด๋‚ ์ˆ˜๋ก ๊ตฌ๋ฌธ์ด ๊ธธ์–ด์ง„๋‹ค. 

 

 

๐Ÿค  ์ „๋žตํŒจํ„ด ์‚ฌ์šฉ

class Video {
  constructor(playAction) {
    this.playAction = playAction;
  }
  play() {
    if (!this.playAction) {
      console.log("No have a PlayAction");

      return;
    }

    this.playAction();
  }
}

class StreamingVideo {
  playVideo() {
    console.log("Play StreamingVideo");
  }
}

class BrandVideo {
  playVideo() {
    console.log("Play BrandVideo");
  }
}

class CarPurPoseVideo {
  playVideo() {
    console.log("Play CarPurPoseVideo");
  }
}

const streamingvideo = new StreamingVideo();
const brandvideo = new BrandVideo();
const carpurposevideo = new CarPurPoseVideo();
const video1 = new Video(streamingvideo.playVideo);
const video2 = new Video(brandvideo.playVideo);
const video3 = new Video(carpurposevideo.playVideo);

video1.play();
video2.play();
video3.play();

์ผ๋‹จ if/else์— ์žˆ๋Š” ๊ฒƒ๋“ค์„ ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. 

  • StreamingVideo
  • BrandVideo
  • CarPurPoseVideo

๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ๊ฐ์ฒด์˜ playAction์„ Video์˜ ์ธ์ž๋กœ ๋„˜๊ฒจ์ฃผ์—ˆ๊ณ , Video์˜ ๊ฐ์ฒด์˜ Play๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด, ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ๊ฒƒ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ™•์‹คํžˆ if/else์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๊ด€๋ฆฌ๊ฐ€ ํŽธํ•ด์กŒ์ง€๋งŒ, ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•