Skip to content
This repository was archived by the owner on Jan 13, 2021. It is now read-only.

Latest commit

Β 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Β 
Β 

README.md

κ°œμš”

객체가 νŠΉμ • μƒνƒœμ— 따라 ν–‰μœ„λ₯Ό λ‹¬λ¦¬ν•΄μ•Όν•˜λŠ” μƒν™©μ—μ„œ μžμ‹ μ΄ 직접 μƒνƒœλ₯Ό μ²΄ν¬ν•˜μ—¬ μƒνƒœμ— 따라 ν–‰μœ„λ₯Ό ν˜ΈμΆœν•˜μ§€ μ•Šκ³ , μƒνƒœλ₯Ό 객체화 ν•˜μ—¬ μƒνƒœκ°€ 행동을 ν•  수 μžˆλ„λ‘ μœ„μž„ν•˜λŠ” λ””μžμΈ νŒ¨ν„΄

객체의 νŠΉμ • μƒνƒœλ₯Ό 클래슀(abstract class)둜 μ„ μ–Έν•˜κ³ , ν΄λž˜μŠ€μ—μ„œλŠ” ν•΄λ‹Ή μƒνƒœμ—μ„œ ν•  수 μžˆλŠ” ν–‰μœ„λ“€μ„ μ •μ˜ν•©λ‹ˆλ‹€. 각 μƒνƒœ ν΄λž˜μŠ€λ“€μ„ μΈν„°νŽ˜μ΄μŠ€λ‘œ μΆ”μƒν™”ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” μͺ½μ—μ„œλŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν˜ΈμΆœν•΄μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ μ½”λ“œ

State μΈν„°νŽ˜μ΄μŠ€μ™€ 각 μƒνƒœ 클래슀 μ •μ˜

public interface PowerState {
  public void powerPush();
}

public class Off implements PowerState {
  public void powerPush(){
    System.out.println("μ ˆμ „ λͺ¨λ“œ");
  }
}

public class Saving implements PowerState {
  public void powerPush(){
    System.out.println("전원 on");
  }
}

Laptop

public class Laptop {
  private PowerState powerState;

  public Laptop(){
    this.powerState = new Off();
  }

  public void setPowerState(PowerState powerState){
    this.powerState = powerState;
  }

  public void powerPush(){
    powerState.powerPush();
  }
}

public class Client {
  public static void main(String args[]){
    Laptop laptop = new Laptop();
    On on = new On();
    Off off = new Off();
    Saving saving = new Saving();

    laptop.powerPush();
    laptop.setPowerState(on);
    laptop.powerPush();
    laptop.setPowerState(saving);
    laptop.powerPush();
    laptop.setPowerState(off);
    laptop.powerPush();
    laptop.setPowerState(on);
    laptop.powerPush();
  }
}