객체의 행위를 바꾸고 싶은 경우 ‘직접’ 수정하지않고 전략이라고 부르는 ‘캡슐화한 알고리즘’을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴이다.
뭔가를 구매하는 상황 = 컨텍스트
결제 행위 자체를 ‘직접’ 수정하지는 않고
다양한 결제방법 = 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