본문 바로가기

Computer Sience66

[Effective Java] 아이템1: 생성자 대신 정적 팩터리 메소드를 고려해라 Chapter 02: 객체 생성과 파괴객체를 만들어야 할 때와 만들지 말아야 할 때를 구분하는 법올바른 객체 생성 방법에 대한 설명정적 팩터리 메서드클래스 인스턴스를 얻는 기본적인 방법 → public 생성자 클래스는 생성자와 별도로 정적 팩터리 메소드(static factory method)를 제공할 수 있다.단순하게 클래스 인스턴스를 반환하는 정적 메소드  Boolean class public final class Boolean implements java.io.Serializable, Comparable, Constable { public static final Boolean TRUE = new Boolean(true); public static final Boolean FALS.. 2024. 10. 21.
[Design Pattern] 프로토타입 (Prototype) 패턴 프로토타입 (Prototype) 패턴기존 인스턴스를 복제하여 새로운 인스턴스를 만드는 방법프로토타입 패턴은 객체를 생성할 때, 기존 객체를 복사하여 새로운 객체를 만드는 생성 패턴 중 하나이다.이 패턴은 직접 객체 생성하는 대신, 객치의 복제(cloning)를 통해 성능을 향상시키거나 복잡한 객체 생성 과정을단순화할 수 있도록 도와준다. 특히 새로운 객체를 만드는 비용이 클 때 유용하다. 복제 기능을 갖추고 있는 기존 인스턴스를 프로토타입으로 사용해 새 인스턴스를 만들 수 있다.프로토타입 (Prototype) 패턴 Before@Getter @Setter@EqualsAndHashCodepublic class GithubRepository { private String user; private S.. 2024. 10. 20.
[Design Pattern] 빌더(Builder) 패턴 빌더 (Builder) 패턴동일한 프로세스를 거쳐 다양한 구성의 인스턴스를 만드는 방법(복잡한) 객체를 만드는 프로세스를 독립적으로 분리할 수 있다빌더 패턴 적용 Before@Getter @Setter @ToString@NoArgsConstructor @AllArgsConstructorpublic class DetailPlan { private int day; private String plan;}@Getter @Setter @ToString@AllArgsConstructor @NoArgsConstructorpublic class TourPlan { private String title; private int nights; private int days; private L.. 2024. 10. 19.
[Design Pattern] 추상 팩토리(Abstract Factory) 패턴 추상 팩토리 (Abstract factory) 패턴?추상 팩토리 패턴 (Abastract Factory Pattern)은 객체 생성과 관련된 디자인 패턴 중 하나이다.관련된 객체들의 그룹을 생성하는 인터페이스를 제공하는 패턴이다. 즉 상세한 클래스 명시 없이 객체를 생성할 수 있는 방법을 제공한다. 이 패턴은 팩토리 메소드 패턴보다 한층 추상화된 구조여러 제품 군을 생성할 수 있는 팩토리들을 조직화하는데 사용된다.구체적으로 어떤 클래스의 인스턴스를(concrete product)를 사용하는지 감출 수 있다. 추상 팩토리 패턴 적용  Beforepublic interface Anchor {}public class WhiteAnchor implements Anchor {}public interface Whe.. 2024. 10. 18.
[Design Pattern] 팩토리 메소드(Factory Method) 패턴 팩토리 메소드 (Factory method) 패턴팩토리 메소드는 객체 생성 방식을 캡슐화하여 객체 생성의 책임을 서브클래스에 위임하는 디자인 패턴이다. 이 패턴은 객체 생성을 위해 new 연산자를 직접 사용하지 않고, 객체 생성 과정을 별도의 메소드로 정의하여  객체 생성의 유연성을 높인다.  팩토리 메소드 패턴의 구조  Creator(창조자 인터페이스)객체 생성을 위한 팩토리 메소드를 정의하는 인터페이스를 의미 실제로 객체를 생성하지 않으며, 서브클래스(구체적인 창조자 클래스)가 이 메소드를 구현하여 객체를 생성  ConcreteCreator(구체적인 창조자 클래스)Creator 인터페이스의 서브클래스(구현 클래스), 실제 객체 생성을 담당   Product(제품)팩토리 메소드가 생성하는 객체의 타입을.. 2024. 10. 18.
[Design Pattern] 싱글톤(Singleton) 패턴 싱글톤 (Singleton) 패턴인스턴스를 오직 한개만 제공하는 클래스 싱글톤(Singleton) 패턴은 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하고, 그 인스턴스에 대한 전역 접근을 제공하는 디자인 패턴이다. 이 패턴은 주로 시스템의 전역 상태나 설정 정보를 관리하는 데 사용되며, 인스턴스가 여러 개 존재할 때 발생할 수 있는 문제를 방지한다.  시스템 런타임, 환경 세팅에 대한 정보 등, 인스턴스가 여러개 일 때 문제가 생길 수 있는 경우가 있다. 인스턴스를 오직 한개만 만들어 제공하는 클래스가 필요하다.  싱글톤 패턴을 가장 단순히 구현하는 방법public class Settings {}public class App { public static void main(String[] a.. 2024. 10. 16.