본문 바로가기

Java

[Java]_JAVA로 디자인패턴 공부

UML : 통합 모델링 언어(UML, 영어: Unified Modeling Language)는 소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어이다. 

 

 

 

위 다이어그램을 코드로 옮긴다면

 

package org.example;

class Duck{
public void quack(){
System.out.println("quack! quack!");
}
public void swim(){
System.out.println("SWIM SWIM");
}
public void display(){
System.out.println("DUCK!");
}

}

class MallardDcuk extends Duck{

@Override
public void display() {
System.out.println("it looks like Mallard!");
}
}

class Readheadduck extends Duck{

@Override
public void display() {
System.out.println("it looks like ReadHead!");
}
}
public class main {
public static void main(String[] args) {
Readheadduck r=new Readheadduck();
MallardDcuk m=new MallardDcuk();

r.display();
m.swim();

}
}

 


 

상속 부분은 Extends를 사용 실체화 관계 부분은 interface로 생성, implement를 사용하여 작성

메인에서 new 를 이용해 객체를 생성하고 사용하면 됨

 

intelliJ 기준 ctr + o 를 통해 쉽게 오버라이딩 가능 

 

 

package org.example;

interface Flyable{
void fly();
}

interface Quackable{
void quack();
}

class Duck{
public void quack(){
System.out.println("quack! quack!");
}
public void swim(){
System.out.println("SWIM SWIM");
}
public void display(){
System.out.println("DUCK!");
}

}

class MallardDcuk extends Duck implements Flyable ,Quackable{

@Override
public void display() {
System.out.println("it looks like Mallard!");
}

@Override
public void fly() {

}
}

class Readheadduck extends Duck implements Flyable, Quackable{

@Override
public void display() {
System.out.println("it looks like ReadHead!");
}

@Override
public void fly() {

}
}

class RubberDuck extends Duck implements Quackable{
@Override
public void quack() {

}

@Override
public void display() {
System.out.println("looks like RubberDuck!");
}
}

class DecoyDuck extends Duck{
@Override
public void display() {
System.out.println("it looks like DecoyDuck");;
}
}



public class main {
public static void main(String[] args) {
Readheadduck r=new Readheadduck();
MallardDcuk m=new MallardDcuk();

}
}