Loading...

빌더 패턴 (Builder Pattern)

- 객체 생성 패턴 - 생성자의 인자가 많은 경우, 생성자의 인자들 중에 필수적 인자와 선택적 인자가 혼합되어 있는 경우 사용 - 또한 immutable 객체 (변경, 수정할 수 없는 객체)를 생성하고 싶은 경우에도 사용 - 점층적 생성자 패턴의 경우 인자가 많을수록 생성자 개수도 많아진다. 생성자의 개수가 많기때문에 인자가 어떤 의미인지 파악하기 힘들고 가독성이 떨어진다는 문제점이 있다. - JavaBeans 패턴의 경우 setter 메서드로 각 속성의 값을 설정하는 경우, 가독성은 향상되나 immutable object를 만들 수 없다는 문제점이 있다. - Builder 패턴 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2..

2020. 10. 5. 21:30

SOLID 원칙

SRP (Single Responsibility Principle), 단일 책임 원칙 - SRP에서 책임의 기본 단위는 객체를 지칭 - 책임이란 해야 하는것, 할 수 있는 것으로 간주할 수 있다 - 즉 객체는 단 하나의 책임만을 가져야 한다는 것이다 - 객체에 책임을 할당할 때는 어떤 객체보다도 작업을 잘 할 수 있는 객체에 책임을 할당해야 한다 - 또한 객체는 책임에 수반되는 모든 일을 자신만이 수행할 수 있어야 한다 - 좋은 설계란 시스템에 새로운 요구사항이나 변경이 있을 때 가능한 한 영향 받는 부분을 줄이는 것이다. 한 객체가 많은 책임을 지고 있다면 클래스 내부에서 다른 역할을 수행하는 코드들간의 결합도가 높아지게 된다. 이는 클래스에 변경이 있을때마다 영향을 받는 부분이 많다는것이며 또한 변경..

2020. 9. 17. 19:48

클래스 다이어그램

접근 제어자 public + 어떤 클래스의 객체에서든 접근 가능 private - 이 클래스에서 생성된 객체들만 접근 가능 protected # 동일 패키지에 있거나 상속 관계의 하위 클래스 객체들만 접근 가능 package ~ 동일 패키지에 있는 클래스의 객체들만 접근 가능 관계 연관 관계 (association) - 클래스들이 개념상 서로 연결되었음을 나타낸다. 실선, 화살표로 표시 - 보통 한 클래스가 다른 클래스에서 제공하는 기능을 사용하는 상황일때 표시 - 양방햔 관계 일때 화살표를 사용하지 않음 - 단방향 -> 한 객체만이 다른 객체의 존재를 인식 - 양방향 -> 양 객체들 모두 서로의 존재를 인식 - 멤버변수가 양 쪽에 있으면 양방향 관계 - 양방향 관계이므로 각 클래스에서 서로를 참조할 수..

간단한 웹 페이지 로그인, 회원가입 구현

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 Register Form div.ex { text-align: center; width: 35%; padding: 10px; border: 5px solid grey; margin: 0px } Register Form Enter information Here 아이디 비밀번호 이름 성별 남자 여자 이메일 Colored by Color Scripter cs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1..

2020. 9. 9. 19:11

리눅스 vi 명령어 정리

vi 편집기 종료 마치기 명령 :q : 그대로 종료하기(quit) :q! : 변경된 내용을 저장하지 않고 강제로 종료하기 :wq : 변경된 내용을 저장하고 종료하기(write and quit) :x : :wq와 동일한 명령 ZZ : :wq와 동일한 명령 삽입 명령 a : 커서 뒤에 입력 A : 라인 끝에 입력 i : 커서 앞에 입력(insert) I : 라인 시작 부분에 입력 o : 커서 있는 라인 밑에 출력 O : 커서가 있는 라인 위에 입력 커서 이동 명령 h : 왼쪽으로 커서 한칸 이동 H : 화면의 처음으로 이동 l : 오른쪽으로 한칸 이동 L : 화면 끝으로 이동 e : 다음 단어의 마지막으로 이동 E : 커서를 공백으로 구분된 다음 단어 끝으로 이동 b : 한 단어 뒤로 이동 B : 커서를 공..

2020. 9. 5. 18:35

백준 2581: 소수

자바 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 package Beak; import java.util.ArrayList; import java.util.Scanner; public class Math_2581 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int cnt = 0, sum = 0; ArrayList arr = new ArrayList(); for(int i=n; i ..

2020. 9. 5. 17:03

백준 1978: 소수 찾기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 package Beak; import java.util.Scanner; public class Math_1978 { static int decimal(int[] a) { int idx = 0, cnt = 0; for(int i=0; i 1) { for(int j=1; j