728x90
반응형
약 캡슐처럼 생각해보기:
약 캡슐은 겉에 젤라틴 막이 있고, 안에 약이 들어있죠?
우리는 약의 내부 성분을 직접 만지지 않고, 캡슐 채로 사용합니다
캡슐이 내부 약을 보호하고 있는 거죠
코드에서의 캡슐화:
// 캡슐화 예시
const createPaymentService = (processor) => {
// 외부에서 직접 접근할 수 없는 processor
return {
// 외부에서 사용할 수 있는 인터페이스
processPayment: (amount) => processor.process(amount)
};
};
const creditCardService = createPaymentService(creditCardProcessor);
processor는 캡슐 안에 든 약처럼 외부에서 직접 접근할 수 없음
processPayment는 캡슐의 겉면처럼 외부에서 사용할 수 있는 인터페이스
캡슐화를 안 했다면:
// 캡슐화 하지 않은 예시
const paymentService = {
processor: creditCardProcessor, // 누구나 직접 접근 가능
processPayment: function(amount) {
return this.processor.process(amount);
}
};
// 외부에서 processor를 직접 수정할 수 있음
paymentService.processor = null; // 😱 문제 발생!
캡슐화의 장점:
const creditCardService = createPaymentService(creditCardProcessor);
// 외부에서는 processPayment만 사용 가능
creditCardService.processPayment(50000); // ✅ OK
// processor에는 직접 접근 불가능
creditCardService.processor // undefined
즉, 캡슐화는:
중요한 데이터나 기능을 보호하고
외부에서는 필요한 인터페이스만 사용하도록 하는 것
마치 약 캡슐처럼 내부를 보호하면서 사용하기 쉽게 만드는 것입니다!
728x90
반응형
'개발 > script' 카테고리의 다른 글
[script] 인터페이스란? 정말 쉽게 설명하기 (0) | 2025.01.14 |
---|---|
[script] 객체 리터럴 문법 (0) | 2025.01.12 |
[script] 전개구문 ... (0) | 2025.01.11 |
[script] 디자인패턴 기본기 정리 - SOLID 법칙 (0) | 2025.01.10 |
null vs undefined 차이 (0) | 2024.12.31 |