Java 디자인 모드장식자 모드
콘셉트
4
설계 원칙
4
다음은 햄버거를 예로 들어보겠습니다.
public interface Hanbeger {
//
public float price();
//
public String name();
}
//
public class GoldHanbeger implements Hanbeger{
@Override
public float price() {
return 10;
}
@Override
public String name() {
return " ";
}
}
public abstract class peicai implements Hanbeger{
private Hanbeger hanbeger;
public peicai(Hanbeger h){
this.hanbeger = h;
}
@Override
public String name() {
return this.hanbeger.name();
}
@Override
public float price() {
return this.hanbeger.price();
}
}
public class Shengcai extends peicai{
public Shengcai(Hanbeger h) {
super(h);
}
@Override
public float price() {
return super.price()+5;
}
@Override
public String name() {
return super.name()+" ";
}
}
//
public class Beff extends peicai {
public Beff(Hanbeger h) {
super(h);
}
@Override
public String name() {
return super.name()+" ";
}
@Override
public float price() {
return super.price()+20;
}
}
public class Text {
public static void main(String[] args) {
GoldHanbeger gold = new GoldHanbeger();
System.out.println(gold.name()+" " + gold.price());
//
Beff beff = new Beff(gold);
System.out.println(beff.name()+" " + beff.price());
//
Shengcai shencai = new Shengcai(beff);
System.out.println(shencai.name() + " " + shencai.price());
}
}
나는 이런 모델에 대해 이렇게 이해한다. 이것은 마치 요리를 하는 것과 같다. 나는 먼저 무엇을 해야 하는지, 대체적인 방향을 정해야 한다. 햄버거의 예에서 나는 내가 원하는 것이 햄버거라는 것을 먼저 확정했다. 그러면 햄버거 인터페이스를 정의해야 한다. 이것은 기본이기 때문이다.그러면 햄버거에는 닭다리버거, 장어버거, 황금버거 같은 종류가 많아요. 여기서 저는 황금버거를 골랐어요.물론 황금버거는 햄버거의 인터페이스를 실현하는 종류다.가장 기본적인 햄버거가 생긴 후에 우리는 약간의 반찬을 넣어야 한다. 반찬은 하나의 종류이다. 그러면 반찬도 상추, 소고기, 와사비 등 여러 종류가 있는데 구체적인 반찬을 쓸 때 반찬류를 계승해야 한다. 왜냐하면 이것들은 모두 반찬에 속하기 때문이다.마지막은 테스트 클래스입니다. 다음은 실행 결과입니다.
황금만두 가격
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.