본문 바로가기
728x90

Web75

[Spring] Observer Pattern [Spring] Observer Pattern 한 없이 유약한 공격력 0의 유닛이다. 그렇지만 프로토스에게 중반 이후 클로킹을 쓰는 유닛에 대처하기 위해 필수적으로 생산해야 하는 유닛이다. 옵저버는 관찰자이다. 공격을 하지 않고 들키면 뚜드려 맞아야 하고, 가려진 맵과 클로킹 된 유닛을 보여주기만 한다. 그렇다면 옵저버 패턴은 무엇일까? 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다. Observer Pattern도 옵저버와 .. 2022. 7. 24.
[Spring] Factory-Method Pattern [Spring] Factory-Method Pattern 팩토리는 공장을 의미한다. 공장은 물건을 생산하는데 객체 지향에서 팩토리는 '객체'를 생성한다. 팩터리 메서드는 결국 객체를 생성하고 반환하는 메서드를 말한다. 여기에 패턴이 붙으면 하위 클래스에서 팩토리 메서드를 오버라이딩해서 객체를 반환하게 하는 것을 의미한다. 팩토리 메서드 패턴은 생성할 객체 타입을 예측할 수 없을 때 활용한다. 객체 생성의 책임을 하위 클래스에게 위임시키고, 어느 하위 클래스에게 위임했는 지에 대한 정보를 은닉할 때 활용한다. 정리하면 다음과 같다. - 팩토리 메서드 패턴은 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때 사용한다. - 팩토리 메서드 패턴은 생성할 객체를 기술하는 책임을 자신의 서브클.. 2022. 7. 23.
[Spring] Singleton Pattern [Spring] Singleton Pattern 객체지향 디자인패턴 중 싱글턴 패턴은 객체의 인스턴스를 오직 1개만 생성한다. 이것이 싱글턴 패턴의 정의이다. 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등과 같은 것을 인스턴스를 여러 개 만들어 사용하게 되면 불필요한 메모리 자원 낭비가 되는데, 이럴 때 사용하는 것이다. 이런 싱글턴 패턴을 구현하기 위해서는 반드시 객체 생성을 위한 new에 제약을 걸어야 한다. 또한 만들어진 단일 객체를 반환할 수 있는 메서드가 필요하다. 그래서 아래의 세 가지 조건이 필요하다. - new를 외부에서 실행할 수 없도록 생성자에 private 접근 제어자를 지정한다. - 유일한 단일 객체를 반환할 수 있는 정적 메서드가 필요하다. - 유일한 단일 객체를 참조할 정적 참.. 2022. 7. 22.
[Java] equals()와 ==의 차이점 [Java] equals()와 ==의 차이점 equals()는 Object 클래스의 메소드이다. public boolean equals(Object obj) { ... } equals()는 리턴값으로 boolean 형식을 가진다. 모든 객체를 인자로 받을 수 있다. 자바에서는 두 객체를 동등 비교할 때 equals() 메서드를 사용한다. equals()는 두 객체를 비교해서 논리적으로 동등하면 true를 리턴하고, 그렇지 않으면 false를 리턴한다. 여기서 논리적 동등성은 같은 객체든 다른 객체든 객체가 저장하고 있는 데이터가 동일함을 의미한다. 즉, 객체의 메모리 번지를 비교하는 것이 아니라, 문자열이나 숫자가 같은지를 비교하는 것이다. == : 동치성 비교. 달이라고도 하고 moon이라고도 하지만,.. 2022. 7. 19.
[Java] Wrapper 클래스 [Java] Wrapper 클래스 1. Wrapper Class 기본 자바는 기본 타입(byte, char, short, int, long, float, double, boolean)의 값을 갖는 객체를 생성할 수 있다. 이런 객체를 래퍼 객체라고 하는데, 그 이유는 기본 타입의 값을 내부에 두고 포장하기 때문이다. 이런 포장 객체는 포장하고 있는 기본 타입 값은 외부에서 변경할 수 없다. 만약 내부의 값을 변경하고 싶다면 새로운 포장 객체를 만들어야 한다. 기본 타입별 포장 클래스는 다음과 같이 매칭된다. 기본 타입 포장 클래스 byte Byte char Character short Short int Integer long Long float Float double Double boolean Boole.. 2022. 7. 18.
[Java] throws [Java] throws 메서드 안에서 예외가 발생할 수 있는 코드를 작성할 때, try-catch 블록으로 예외를 처리하는 것이 기본이지만, 경우에 따라서는 그 메서드를 호출할 곳에서 예외를 처리하도록 예외를 떠넘길 수도 있다. 이때 사용하는 것이 throws이다. throws 뒤에는 쉼표로 구분하여 처리해야 하는 예외 클래스를 병기할 수도 있다. public void method1() throws Exception{ } 이제 method1()은 예외를 자기 자신이 책임지지 않는, 아주 무책임한 메소드가 되었다. 이런 무책임한 메소드를 부른 method2()는 다음과 같은 행위를 해야 한다. public void method2(){ try{ method1(); catch(Exception e) { } .. 2022. 7. 17.
728x90