javaScript
합성(Composition)
mooyou
2024. 5. 2. 11:53
728x90
300x250
합성은 다른 객체를 포함하여 기능을 확장하는 방법을 말한다. 필요한 기능을 구현하고 있는 객체와 합성해서 기능을 사용하는 것을 말하며 기능을 구현하고 있는 객체와 사용하는 객체 간의 관계를 합성관계라고 한다.
// Engine 클래스 정의
class Engine {
constructor(horsepower) {
this.horsepower = horsepower;
}
start() {
console.log("Engine started.");
}
}
// Car 클래스 정의
class Car {
constructor(make, model, engine) {
this.make = make;
this.model = model;
this.engine = engine;
}
start() {
console.log(`${this.make} ${this.model} started.`);
this.engine.start(); // Engine 객체의 start 메소드 호출
}
}
// Engine 객체 생성
const engine = new Engine(200);
// Car 객체 생성
const car = new Car("Hyundai", "Sonata", engine);
// Car 시작
car.start();
이 예시에서 'Engine'클래스는 자동차 엔진을 나타내며, 'Car'클래스는 자동차를 나타낸다. Car클래스는 Engine 객체를 포함하고있다.
Engin클래스와 Car 클래스는 서로 독립적으로 존재할 수 있다. Car 객체는 필요에 따라 Engine 객체의 메소드를 호출해서 기능을 실행한다.
함성을 사용하면 기능을 재사용하고 확장할 수 있으며 객체 간의 의존성을 줄이고 유연한 코드를 작성할 수 있다.
728x90
반응형