Java3 BigInteger BigInteger는 long이상의 크기의 숫자를 다룰 때 주로 사용한다. 여러 방식으로 객체를 생성할 수 있지만 문제를 풀 때 주로 사용하는 방법으로 문자열만 사용하여 만들어보자 BigInteger big = new BigInteger("0"); 문자열을 사용하여 무한대 범위의 수를 다룰 수 있다. 기본 연산을 알아보자 BigInteger big1 = new BigInteger("100"); BigInteger big2 = new BigInteger("100"); BigInteger big3; big3=big1.add(big2); big3=big1.subtract(big2); big3=big1.divide(big2); big3=big1.multiply(big2); 연산을 하여 결과를 리턴해주기 때문에 .. 2021. 11. 3. 옵저버 패턴(Observer Pattern) 옵저버 패턴이란? 객체 간 1:N 의존관계를 정의하며 한 개의 객체 상태가 변경될 때 그 객체와 의존 관계에 있는 모든 객체들이 자동으로 알림을 받고 상태를 갱신합니다. 객체의 상태변화를 지켜보는 옵저버를 통하여 변경 사항을 전달하고 옵저버를 통해 연결된 객체들이 변화를 알고 갱신합니다. 흔히 이벤트 기반 시스템을 구현하는 데 사용되는 패턴입니다. 옵저버 패턴의 예시를 보자 뉴스레터와 구독자들이 있다고 생각하자 여려 명의 사람이 뉴스레터의 구독자가 되었다고 하자 뉴스레터의 새로운 기사가 생겼으면 구독자들에게 새로운 기사가 있다고 구독자들에게 변경사항을 알린다. 구독을 하지 않은 비구독자는 변경사항을 모른다. 느슨한 결합 옵저버 패턴의 특징은 느슨한 결합입니다. 그림을 보자 뉴스레터처럼 관찰대상이 되는 객.. 2021. 9. 23. 스트래티지 패턴(Strategy Pattern) 스트래티지 패턴이란? 같은 종류의 작업을 하는 알고리즘을 정의하고 각 알고리즘을 캡슐화, 그리고 알고리즘들을 서로 바꿔 사용할 수 있도록 한다. 알고리즘을 사용하는 클라이언트로부터 독립적을 알고리즘을 바꿔서 적용시킬 수 있도록 한다. 말이 너무 어렵다. 널리 알려져 있는 유명한 예시를 보자 오리라는 클래스를 만들고 이것을 상속받는 여러 오리들을 만들어 보자 class Duck { void quack() { System.out.println("quack"); } void swin() { System.out.println("swimmin"); } void fly() { System.out.println("flying"); } void display() { System.out.println("Duck"); }.. 2021. 9. 17. 이전 1 다음