디자인 모드 (10) 장식 기 모드
우리 예 를 들 어 설명 합 시다.먼저 모양 을 추가 하고 모양 인 터 페 이 스 를 실현 했다.
public interface Shape {
String getShape();
}
class Square implements Shape{
@Override
public String getShape() {
return " ";
}
}
class Circle implements Shape{
@Override
public String getShape() {
return " ";
}
}
그리고 장식 기 를 정의 합 니 다.장식 기 역시 Shape 인 터 페 이 스 를 실현 해 야 하고 장식 기 에서 Shape 를 보충 해 야 한다 (즉 장식).
public abstract class ColorDecorator implements Shape {
protected Shape shape;
public ColorDecorator(Shape shape) {
this.shape = shape;
}
}
class RedDecorator extends ColorDecorator {
public RedDecorator(Shape shape) {
super(shape);
}
@Override
public String getShape() {
return " " + shape.getShape();
}
}
class BlueDecorator extends ColorDecorator {
public BlueDecorator(Shape shape) {
super(shape);
}
@Override
public String getShape() {
return " " + shape.getShape();
}
}
마지막 으로 다시 한 번 검증 해 보 겠 습 니 다.우 리 는 형상 류 를 수정 하지 않 은 전제 에서 형상 에 색깔 의 기능 을 추가 하 는 데 성공 했다.
public void run() {
Shape square = new Square();
Shape circle = new Circle();
Shape redSquare = new RedDecorator(square);
Shape blueCircle = new BlueDecorator(circle);
System.out.println(redSquare.getShape());
System.out.println(blueCircle.getShape());
}
장식 기 모드 는 여러 곳 에서 사용 된다.자바 에서 가장 전형 적 인 사용 장면 은 바로 자바 의 많은 IO 류 이다. 예 를 들 어 4. 567914. 또는 4. 567914. 이런 것 이다.자바 의 IO 라 이브 러 리 는 여러 개의 서로 다른 IO 클래스 의 끼 워 넣 기 를 통 해 다양한 기능 (예 를 들 어 캐 시) 의 조합 을 실현 할 수 있 습 니 다.물론 자바 의 IO 라 이브 러 리 는 부정적인 교재 로 장식 기 모델 의 과도 한 사용 으로 인해 시스템 의 유형 이 너무 많 고 복잡 하 며 오히려 우리 가 공부 하고 사용 하 는 데 불리 하 다.실제 사용 에서 도 우 리 는 디자인 모델 의 합 리 적 인 사용 에 주의해 야 하 며 사용 하기 위해 사용 하지 말 아야 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.