더보기 객체의 상태 변화를 관찰하는 옵저버 들의 목록을 객체에 등록 상태 변화가 있을 때마다 메서드를 통해 객체가 직접 각 옵저버에게 통지하도록 한다 - 주로 분산 이벤트 핸들링 시스템을 구현하는데 사용 객체의 상태가 변할 때 연관된 객체들에게 알림을 보내는 패턴 장점 실시간으로 한 객체의 변경사항을 다른 객체에 전파할 수 있다. 느슨한 결합으로 시스템이 유연하고 객체간의 의존성 제거 가능 public class Observer { public String msg; public void receive(String msg){ System.out.println(this.msg + "에서 메시지를 받음 : " + msg); } } public class User1 extends Observer{ public ..
전체 글
- 생성패턴의 한 종류로 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공 아래의 두 가지 종류의 클래스로 나눈다. 복잡한 객체를 생성하는 방법을 정의하는 클래스 표현하는 방법을 정의하는 클래스로 분리 장점 인스턴스를 생성할 때 인자를 선택적으로 가독성 좋게 넘길 수 있다. 인자의 순서에 상관이 없고, 불필요한 생성자를 만들지 않는다. public class Computer { private int serialNumber; private String model; private String vender; private String cpu; private int ram; private int disk; private String graphicCard; private Computer(int ser..
조건문 CASE CASE WHEN THEN 결과문 1 ... ELSE END COALESCE -NULL 값 대체 함수 -Coalesce ( 매개변수1, 매개변수2 .. ) = > NULL 이 아닌 첫번째 매개변수 반환 NULLIF - 값을 NULL 로변환하고 싶을 때 사용 -NULLIF( 매개변수1, 매개변수2) => 두 매개변수가 같으면 NULL, 아니면 첫번째 값 반환 해설 nullif(student,0) : student 가 0일 경우 0 변환 :: char : 나눈 값을 문자형으로 변환 coalesce : 매개변수 1이 null 일경우 '나눌 수 없음' 반환 > null 과 함께한 모든 연산은 null
DATE, TIME, TIMESTAMP, TIMESTAMPZ .. 날짜의 사칙연산 - DATE 에 정수를 더하면 그만큼 후의 DATE 값 출력 -DATE 에 TIME 을 더하면 그만큼 시간이 더해져 출력 - 뺄셈의 경우 남은 날짜나 시간값 반환 INTEGER / TIMESTAMP INTERVAL : 시간 및 날짜 간격을 나타내는 데이터 타입 - INTERVAL 의 덧셈은 INTERVAL 끼리만 연산 가능 -- 시간은 곱셈/ 나눗셈이 가능하나 날짜는 불가 CURRENT_DATE : 현재 날짜 정보 CURRENT_TIME : 현재시간 + 시간대 정보 CURRENT_TIMESTAMP : 현재 날짜 및 시간 + 시간대 정보 시간대 정보를 빼는 방법 LOCALTIME : 현재 시간 정보 = CURRENT_TIME..
부분과 전체의 계층을 표현하기 위한 객체들을 모아서 트리 구조로 구성하는 패턴 사용자에게 개별객체와복합 객체를 모두 동일하게 다룰 수 있도록 함 예제 : [Design Pattern] 컴퍼지트 패턴이란 - Heee's Development Blog (gmlwjd9405.github.io) all4land_junior/Week01/src/designPattern/composite at main · keartt/all4land_junior (github.com)
객체를 생성하는데 비용? 시간이 많이 들고, 비슷한 객체가 이미 있는 경우 사용되는 패턴 원본 객체를 새로운 객체에 복사하여 필요에 따라 수정함 clone 메소드를 사용함 생성 패턴 clone 메소드를 사용 -> 생성하고자 하는 객체에 clone 에 대한 Override 필요 반드시 생성하고자 하는 객체의 클래스에 clone 메소드가 정의되어 있어야 함 [디자인패턴] 프로토타입패턴(Prototype Pattern) (velog.io) package designPattern.prototype; import java.util.ArrayList; import java.util.List; public class Employees implements Cloneable { private List empList; p..