[CS]:: Design pattern - 전략패턴 startegy pattern

김종건·2023년 5월 17일

CS 디자인 패턴

목록 보기
3/8
post-thumbnail

🎯전략 패턴

객체의 행위를 바꾸고 싶은 경우 ‘직접’ 수정하지않고 전략이라고 부르는 ‘캡슐화한 알고리즘’을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴이다.

  • 뭔가를 구매하는 상황 = 컨텍스트

  • 결제 행위 자체를 ‘직접’ 수정하지는 않고

  • 다양한 결제방법 = ex) 네이버 페이 ,카카오 페이, 애플 페이

  • 캡슐화해서 매 상황마다 갈아 끼우면서 교체 가능하게 만든다는 것!

컨텍스트 프로그래밍에서의 컨텍스트는 상황,맥락 문맥을 의미한다.

개발자가 어떤 작업을 완료하는 데 필요한 모든 관련 정보를 말한다


✔예시

var passport = require('passport')
  , LocalStrategy = require('passport-local').Strategy;

passport.use(new LocalStrategy(
  function(username, password, done) {
      User.findOne({ username: username }, function (err, user) {
        if (err) { return done(err); }
          if (!user) {
              return done(null, false, { message: 'Incorrect username.' });
          }
          if (!user.validPassword(password)) {
              return done(null, false, { message: 'Incorrect password.' });
          }
          return done(null, user);
      });
  }
));

참고

https://victorydntmd.tistory.com/292
https://github.com/wnghdcjfe/csnote

profile
https://github.com/Foccy https://foccy-github-5er7huis0-foccy.vercel.app/?category=category1

0개의 댓글