CS

CS

[JAVA] Singleton Design Pattern 개념 및 구현

Singleton Design Pattern이란 클래스가 단 하나만의 인스턴스를 생성하도록 제한하는 패턴이다. private 및 static 제어자를 활용해 클래스 내부에서 미리 인스턴스 하나를 생성해두고, 외부에서 접근할 때는 해당 인스턴스에 대한 참조값만 전달한다. 보통 여러 개의 인스턴스가 필요 없는 경우에 사용한다. 예를 들자면, 수정 가능한 멤버변수가 없고 기능만 있는 stateless 객체의 경우 인스턴스를 계속 생성 및 삭제하는데 비용이 많이 들어서 재사용이 유리한 경우 구현 자바에서 Singleton Design Pattern을 여러 가지 방법으로 구현할 수 있다. 공통 구현 내역 생성자를 private으로 선언해 내부에서만 인스턴스 생성할 수 있도록 제한 private Singleton(..

CS/Algorithm

[Algorithm] 유클리드 호제법: 최대공약수/최소공배수 계산하기

유클리드 호제법(Euclidean algorithm)은 두 정수의 최대 공약수를 구하기 위한 알고리즘이다. 왜 공식이 아니라 알고리즘인가 했는데, 값을 구하기 위해 정해진 규칙에 따라 단계의 절차를 밟아 계산을 진행하기 때문에 그렇다고 한다. 기원전 300 원경에 나와서 지금까지 쓰이는 중이다. 이후 나올 약어들만 정리하고 가자면: \(GCD\): Greatest Common Divisor. 최대공약수 \(LCM\): Least Common Multiple. 최소공배수 유클리드 호제법: 최대공약수 계산 유클리드 호제법이 성립하기 위한 정리는 다음과 같다. 2개의 자연수 \(A, B\) 에 대해 \(A\)를 \(B\)로 나눈 나머지를 \(R\)이라 하자. \((A \geq B, 0 \leq R < B)\)..

teamzamong
'CS' 카테고리의 글 목록