java(16)
-
[Design Pattern] 싱글턴 패턴(Singleton Pattern)
Head First Design Patterns를 읽고 학습한 내용을 작성합니다. 0. 싱글턴 패턴의 정의와 필요성 싱글턴 패턴은 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴입니다. 사실 얼핏보기에는 이게 패턴까지 될필요가 있나싶다. 전역변수 하나면 쉽게 해결될 문제인것같다. 하지만 인스턴스를 전역변수로 셋팅하면 하면 해당 파일이나 화면이 로딩 될때 항상 생성된다. 전혀 사용되지 않는 경우에도 말이다. 거기다 해당 인스턴스가 상당히 많은 양의 리소스를 소모한다면 사용하지도 않는데 성능까지 저하시킬수도 있다. 또한, 소스코드 어딘가에 인스턴스를 추가로 생성하는 코드가 있다면 이를 방지할 방법이 없다. 1. 고전적인 싱글턴 패턴 1 2 3 4 5 6..
2021.03.05 -
[Design Pattern] 팩토리 패턴(Factory Pattern)
Head First Design Patterns를 읽고 학습한 내용을 기록합니다. 0.개요 (손이 좀더 가더라도)조건문을 클래스로 뽑아내서 관리할때가 더 좋은 경우가 있다. 조건문의 내용이 객체 인스턴스를 만드는 작업이라면 더욱더 그렇다. 객체의 인스턴스를 만드는 작업이 항상 공개되어 있어야하는것은 아니며, 오히려 공개를 했다간 클래스간 결합에 관련된 문제가 발생할 수 있기 때문이다. 이전 패턴을 학습할때 Duck이라는 인터페이스를 써서 각종 오리 인스턴스 생성에 유연하게 대처했다. 1 Duck duck = new MallardDuck(); cs 하지만 아래처럼 일련의 구상 클래스(각종 오리)들이 있을때는 부득이하게 조건문을 통해 인스턴스화를 수행할 수 밖에 없다. [ 이 코드만 보면 크게 문제 될건 없..
2021.03.02 -
[알고리즘/자바] 프로그래머스 - 프린터
https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린�� programmers.co.kr 내가 원하는 출력물이 몇번만에 출력되는지 계산하는 문제다. 그냥 꺼내면 좋겠지만 각 출력물은 우선순위가 부여되어있다. 먼저 prior에 우선순위 정보를 넣고, loc에 위치 정보를 넣었다. prior의 0번째 출력물을 하나 꺼내고 prior에 남아 있는 값들 중에 내가 꺼낸 출력물 보다 우선순위가 높은게 없다면 출력하면 된다. 만약 있다면 제일 후 순위로 다시 ..
2020.07.20 -
[알고리즘/자바] 프로그래머스 - 이상한 문자 만들기
https://programmers.co.kr/learn/courses/30/lessons/12930?language=java 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr flag를 하나 만들어서 false면 소문자, true면 대문자를 출력하도록 했다. import java.util.*; class Solution { public String solution(String s) { String answer = ""; // 짝수 홀수를 확인하기 위한 flag boolean flag = false..
2020.07.19