IT개발/Java12 [Java] 기본 디자인 패턴 전략 패턴 알고리즘(전략)을 캡슐화하여 상황에 따라 언제든지 교체 가능하게 하는 패턴.1. 유연하게 언제든지 교체 가능2. 결합도 감소(사용하는 코드와 실제 코드가 분리) 옵저버 패턴 한 객체의 상태가 변화가 되면 이를 의존하는 다른객체들에게 통보하는 전략 패턴.(1:N 의존관계)1. 느슨한 결합(주제와 관찰자는 서로 잘 몰라도 됨)2. 이벤트 기반(상태 변경에 따른 자동 업데이트 편함) 데코레이터 패턴 기존의 객체의 코드를 수정하지 않고도 기능의 추가를 덮어씌우듯이 추가하는 전략 패턴(상속대신에 객체를 감싸서 기능을 확장)1. 유연한 기능 추가(필요한 기능만 골라 동적으로 조합가능)2. 기존 코드 보호(원래 코드를 건드리지 않고 기능 확장 가능) 팩토리 패턴 모든 객체 생성 로직을 별도의 공장 클래스로.. 2025. 10. 26. [Java]내가 생각하는 중요한 객체 지향적 프로그래밍 설계 객체 지향 프로그래밍(OOP: Object Oriented Progamming) 현실에 존재하는 여러 요소, 부품들을 객체들로 먼저 만들고 이를 하나씩 조립해서 전체 프로그램을 만드는 기법으로 효율적인 코드 설계 및 작성에 최적화된 기법. Point. OOP의 4대 기초1. 캡슐화2. 다형성3. 추상화4. 상속 Point. OOP의 3개 원칙1. 바뀌는 부분은 캡슐화한다.2. 상속보다는 구성을 활용한다.3. 구현보다는 인터페이스에 맞춰서 프로그래밍한다. 들어가기 앞서서, 어쩌다 해당 4대 원칙이 나오게 되었는가?→ "상속(Inheritance)"은 상위 객체의 메서드를 기반으로 하위 객체에서 사용, 생성 가능하게 하는 기법인데 이는 하위 객체가 전부 같은 행동을 하는 것이 아니기에 문제가 되었지만, "오.. 2025. 9. 7. [Java, OCJA] QUESTION 84, What is the result? import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Test { static int a1; public static void doProduct(Integer a){ a1 = a * a; } public static void doString(StringBuilder s) { s.append(" " + s); } public static void main(String[] args) { String [] arr = {"Hi", "How", "Are", "You"}; List arrList = new ArrayList(Arrays.asList(arr)); if (arrList.removeIf((String .. 2025. 1. 27. [Java] 2차원 배열 1. 2차원 배열 선언과 초기화자바에서 2차원 배열을 선언하는 방법은 다음과 같습니다.1.1 배열 선언과 크기 지정int[][] arr = new int[3][4]; // 3행 4열 크기의 2차원 배열 선언 int[3][4]는 3개의 행과 4개의 열을 가진 2차원 배열을 선언합니다.각 요소는 기본값인 0으로 초기화됩니다.1.2 배열 선언과 값 초기화2차원 배열을 선언하면서 바로 값을 할당할 수 있습니다.int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };이 배열은 3행 3열이고 각 행에는 3개의 값이 들어 있습니다.이 방법은 배열 선언과 동시에 값을 넣을 수 있습니다.2. 2차원 배열 접근2차원 배열에 접근하는 방법은 인덱스를 두 번 사용하는 방식입니다. 첫 번째 .. 2025. 1. 23. 이전 1 2 3 다음