일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 카데인 알고리즘
- 자바입력
- scanner
- JAVA11
- input
- hash table
- heroku
- 자바 스레드 실행 순서 제어
- 사칙연산
- SpringBoot 2
- Easy
- array
- 수학
- 자바 thread 실행 순서 제어
- R
- Kadane's Algorithm
- Today
- Total
목록Design Pattern/Structural Pattern (7)
DeFacto-Standard IT
1. 가정 - 게임에서 유닛과 색상을 모델링한다. - 유닛은 색상 정보를 가지고 있다. 2. Naive Code - Colorpublic class Color { private String name; public Color(String name) { this.name = name; } public String getName() { return this.name; } }색상정보를 저장하는 클래스이다. - Unitpublic class Unit { private Color color; private String name; public Unit(String name, Color color) { this.name = name; this.color = color; } public String getName() {..
1. 가정 - 로거를 구현한다. - 문자열을 넘기면 해당 문자열을 출력하는 로거를 작성한다. 2. Naive Code - Log4Jpublic class Log4J { public void logging(String string) { System.out.println("Log4J : " + string); } }Log4J라는 이름의 Logger클래스이다. 문자열을 받아서 콘솔에 출력하는 역할을 한다. - NaiveClientpublic class NaiveClient { public static void main(String args[]) { Log4J logger = new Log4J(); logger.logging("Log this String"); } }로거를 활용해서 문자를 로깅한다. 실행 결과는..
1. 가정 - 아톰을 만든다. - 아톰은 펀치공격이 가능하다. 2. Naive Code - Punchpublic class Punch { private final String attackType = "Punch"; public String getName() { return attackType; } }펀치 공격에 해당하는 클래스. - Atompublic class Atom { private final String robotType = "Atom"; private Punch punch; public void setPunch(Punch punch) { this.punch = punch; } public void attack() { System.out.println(robotType + " : " + punch..
1. 가정 - TV와 TV 콘센트를 만든다. - TV에는 해외 직구용 TV와, 국내용 TV가 존재한다. - 해외직구TV는 110V를 사용하며, 국내용 TV는 220V를 사용한다. 2. Naive Code - DomesticTV / OverseasTVpublic class DomesticTV { private final int acceptableVoltage = 220; public void on(int electricCurrent) { if ( this.isAcceptableVoltage(electricCurrent) ) System.out.println("Domestic TV is Turned On"); else System.out.println("Warning : Not Acceptable Volta..
1. 가정 - 사용자의 요청에 따라 처리를 하는 서버 시스템을 구현한다. - 서버는 사용자 인증을 수행한다. 여기서는 User1이라는 ID와 1234라는 Password를 가지면 인증에 성공한다고 가정한다. - 서버는 인증에 성공한 유저의 이름만 출력한다. 2. Naive Code - Userpublic class User { private String ID; private String PW; public User(String ID, String PW) { this.ID = ID; this.PW = PW; } public String getID() { return ID; } public String getPW() { return PW; } } - Securitypublic class Security { ..
1. 가정 - 리눅스 파일 시스템을 만든다. - 리눅스 파일 시스템은 파일, 디렉토리를 구성할 수 있다. - 디렉토리는 파일과 디렉토리를 여러 개 저장할 수 있다. - 파일, 디렉토리 추가와 현재 파일 또는 디렉토리의 이름을 출력하는 기능을 구현한다. (편의상 삭제, 수정 등은 구현하지 않음) - 디렉토리의 경우, 해당 디렉토리에 하위 디렉토리가 있다면, 하위 디렉토리안에 있는 파일과 디렉토리들의 정보까지 출력한다. 단, 이 조건은 말단 디렉토리까지 유효하다. 2. Naive Code - Filepublic class File { private String name; public File(String name) { this.name = name; } public void info(String prefix..
1. 가정 - 화면에 글씨를 출력하는 프로그램 작성 - 기본출력 : '기본기능' 을 출력하며, 기본 기능이므로 무조건 모든 기능에서 처음 수행된다. - 옵션에 따라 '추가기능1', '추가기능2' 글씨를 출력할 수 있음 - 기본기능을 기본으로 하되 추가기능의 조합이 가능해야함 - 옵션 기능은 전부 수행할 수도 있고, 몇 개만 수행할 수도 있으며, 실행순서는 존재함 - 실행 순서가 존재한다는 것은, 기본기능 -> 추가기능 1 -> 2와 기본기능 -> 추가기능 2-> 1 모두 지원해야 한다는 의미이다. 2. Naive Code - DefaultPrintpublic class DefaultPrint { public void print() { System.out.println("기본 기능"); } }기본기능을 수..