전체 글
-
ch07 스테이트패턴25 - 2/설계패턴 2025. 10. 15. 00:30
1. 개념01. UML state diagrams- 상태 다이어그램: 객체의 생애 동안 데이터와 행동 나타냄상태 집합(초기 시작 상태 포함)상태 간 전이전체 다이어그램은 해당 객체의 관점에서 그려짐- 유한 상태 기계와 유사- 상태 다이어그램에 가장 적합한 객체크고 복잡한 객체로 긴 생애 가짐도메인("모델") 객체시스템의 모든 클래스에 대해 상태 다이어그램을 만드는 것은 유용X02. State- 상태: 객체의 데이터에 대한 개념적 설명 -> 객체의 필드 값 표현- 전체 다이어그램은 중심 객체의 관점에서 그려짐이 객체가 볼 수 있고 영향 미칠 수 있는 상태/개념만 포함필드의 모든 가능한 값 포함X, 개념적으로 다른 값만 포함03. Killer rabbit의 탈옥 막기초기 상태: 다이어그램의 가장 왼쪽에 있는..
-
[Week6] 6장 싱글톤패턴 실습25 - 2/설계패턴 2025. 10. 15. 00:29
1. 만들어보기- 코드Speaker.javapublic class Speaker { private static Speaker speaker; private Device device; private Speaker() { } public static synchronized Speaker getInstance() { if (speaker == null) { speaker = new Speaker(); } return speaker; } public void connect(Device device) { this.device = device; } public void play(String titl..
-
ch06 싱글톤패턴25 - 2/설계패턴 2025. 10. 15. 00:21
01. 프린터 관리자 만들기- 프린터 관리자Printer.javapublic class Printer { private static Printer printer = null; // ☆static이 붙은 메소드나 변수는 인스턴스가 아닌 클래스에 속함 private Printer() {} public static Printer getPrinter() { if (printer == null) printer = new Printer(); return printer; } public void print(String str) { System.out.println(str); }}User.javapublic class User {..
-
[Week5] 5장 스트래티지 패턴 실습25 - 2/설계패턴 2025. 10. 15. 00:21
01. 모바일 접속 시 LTE를 사용할 지 Wifi를 사용할 지 전략 패턴으로 구현.- Mobile.javapublic abstract class Mobile { private String manufacturer; private String phoneNumber; private OnlineStrategy os; public Mobile(String manufacturer, String phoneNumber){ } public String getPhoneNumber(){ return phoneNumber; } public void setOnlineStrategy(OnlineStrategy os){ this.os=os; } pub..
-
ch05 스트래티지 패턴25 - 2/설계패턴 2025. 10. 15. 00:20
1. 로봇 만들기01. 설계- Robot.javapublic abstract class Robot { private String name; public Robot(String name) { this.name = name; } public String getName() { return name; } public abstract void attack(); public abstract void move();} - TaekwonV.javapublic class TaekwonV extends Robot { public TaekwonV(String name) { super(name); } @Override public ..
-
[Week4] 4장 디자인패턴 개요 실습25 - 2/설계패턴 2025. 10. 14. 16:08
01. 다음 순차 다이어그램에 해당하는 코드 작성- A1.javapublic class A1 { public void doA1(){ System.out.println("doA1"); A2 a2 = new A2(); a2.doA2(this); } public void doIt(A3 a3){ System.out.println("doIt with A3"); a3.doIt(); }} - A2.javapublic class A2 { public void doA2(A1 a1){ System.out.println("doA2 with A1"); A3 a3 = new A3(); a1.doIt(a..
-
[Week2] 2장 객체지향 원리 실습25 - 2/설계패턴 2025. 9. 25. 15:25
1. Vector 클래스를 사용해 Stack 클래스를 구현하라public class Main { VectorString> stack = new VectorString>(); public void push(String item){ stack.add(item); } public String pop(){ return stack.remove(stack.size()-1); } public String peek(){ return stack.elementAt(stack.size()-1); } public boolean isEmpty(){ return stack.isEmpty(); } public int size()..
-
ch01 객체지향 모델링25 - 2/설계패턴 2025. 9. 25. 13:38
1. 모델링01. 모델의 역할- 서로의 해석 공유해 합의 or 해석의 타당성 검토- 현재 시스템 or 앞으로 개발할 시스템의 원하는 모습 가시화- 시스템의 구조와 행위 명세- 시스템 구축하는 틀 제공 02. 모델링- 모델, 추상화를 바탕에 둠 → 특정 관점에서 관련 있는 점은 부각, 관련 없는 것은 무시 2. UML 3. 클래스 다이어그램01. 클래스 다이어그램- 시스템의 정적인 구조 표현- 시간에 따라 변하지 X- 클래스와 그들간의 관계 표현 02. 클래스- 동일 속성 가지고 있고, 동일 행위 수행하는 객체의 집합- 객체를 생성하는 설계도- UML의 클래스 표현세 부분으로 나누어진 박스 표현가장 윗부분: 클래스 이름/ 중간 부분: 속성 / 마지막 부분: 연상- 접근제어자02. 관계- 객체지향 시스템은 ..