이 블로그는 광고 클릭 수익으로 운영됩니다!
괜찮으시다면 광고 차단을 풀어주세요 ㅠㅠ

게시글

강좌48 - JavaScript - 일 년 전 등록

디자인 패턴(전략, strategy)

조회수:
0
이 블로그는 광고 클릭 수익으로 운영됩니다!
괜찮으시다면 광고 차단을 풀어주세요 ㅠㅠ
이 블로그는 광고 클릭 수익으로 운영됩니다!
괜찮으시다면 광고 차단을 풀어주세요 ㅠㅠ

안녕하세요. 자바스크립트 디자인 패턴 마지막 시간입니다. 사실 디자인 패턴은 몇 종류가 더 있지만, 거의 안 쓰이기 때문에 과감하게 생략하였습니다. 마지막으로 배울 패턴은 전략 패턴입니다.

도나우 군단과 무키아누스의 지지를 받는 베스파시아누스는 이제 로마로 진격합니다. 로마로 가는 방법은 여러 가지가 있습니다. 이스라엘에서 지중해를 통해 배로 이탈리아로 가거나, 터키를 거쳐서 육로로 갈 수 있습니다. 또 수도를 공략하는 방법도 여러가지가 있겠죠. 지도자라면 상관에 맞게 전략전술을 수정할 수 있어야합니다. 여러가지 전술을 빠르게 변경할 수 있는 디자인 패턴입니다.

var Strategy = (function() {
  function Strategy() {
    this.stategy = null;
  }
  Strategy.prototype.setStrategy(strategy) {
    this.strategy = strategy;
  };
  Stractegy.prototype.execute = function() {
    this.strategy.execute();
  };
  return Strategy;
})();
var ShipStrategy = (function() {
  function ShipStrategy() {}
  ShipStrategy.prototype.execute = function() {
    console.log('배로 이탈리아에 갑니다');
  };
  return ShipStrategy;
});
var LandStrategy = (function() {
  function LandStrategy() {}
  LandStrategy.prototype.execute = function() {
    console.log('육로로 이탈리아에 갑니다');
  };
  return LandStrategy;
});
var strat = new Strategy();
var ship = new ShipStrategy();
var land = new LandStrategy();
strat.setStrategy(ship);
strat.setStrategy(land); // 전략을 바꿈
strat.execute(); // 어떤 전략이든 설정된 것을 실행
// 육로로 이탈리아에 갑니다.

전략을 설정하는 부분 따로, 실행하는 부분 따로라서, 전략을 설정해두면 실행하기 전에 자유롭게 전략을 바꿀 수 있습니다. 실행한 후에도 바꿀 수 있고요. 이렇게 베스파시아누스는 육로로 진격하여 비텔리우스의 대장군 카이키나를 무찌르고 수도를 점령합니다. 비텔리우스는 베스파시아누스에게 평화적으로 황제를 양위하려다가 실패하여 도나우 군단에게 살해당합니다. 베스파시아누스는 네로 사후 혼란스러웠던 로마를 정비하고 황제의 권위를 다시 세우는 데 노력합니다.

한가지 재밌는 점은 베스파시아누스는 죽을 때 "내가 신이 되어가는구나"라고 말하며, 황제는 서서 죽어야한다고 반쯤 일어서서 죽었습니다. 로마 이야기도 재밌는 것들이 많으니 책을 한 번 읽어보세요!

이상으로 로마 이야기와 함께 한 자바스크립트 디자인 패턴 강좌를 마치겠습니다. 다음 시간에는 자바스크립트에서 알아두면 유용한 문법적 요소인 syntactic sugar에 대해 알아보겠습니다.

투표로 게시글에 관해 피드백을 해주시면 많은 도움이 됩니다. 오류가 있다면 어떤 부분에 오류가 있는지도 알려주세요! 잘못된 정보가 퍼져나가지 않도록 도와주세요.
Copyright © 2016- 무단 전재 및 재배포 금지

댓글

아직 댓글이 없습니다.