반응형

인터페이스 8

Spring Framework_결합도(Coupling)

[ 결합도 - Coupling ]: 모듈 간의 상호 의존성을 나타내는 개념높은 결합도는 한 요소의 변경이 다른 요소에 미치는 영향이 크다는 것을 의미, 유지보수 불리따라서 낮은 결합도가 유지보수성을 향상시키는데 도움을 줌!결합도를 낮추기 위한 방법 ↓ 1. 인터페이스 활용 : DTO: 객체가 변경되어도, 메서드를 추가 변경하지 않아도됨 > 다형성 구현! Interface - Phone.java Class - IPhone.java , GalaxyPhone.java 2. 팩토리 패턴 활용 : HandlerMapping : 코드에 new가 있었는데, new가 없어짐 >>> 코드에 new가 없을수록 결합도가 낮음Spring 컨테이너 코드에 BeanFactory 타입은 무조건 있음원래 객체를 받아오려면 new 했..

개발/Spring 2024.07.16

JAVA_17_람다식

#1 람다식(Lambda expression)JDK 1.8부터 자바에서 지원하는 함수형 프로그래밍함수의 이름이 없는 익명 함수(anonymous function)를 만들기 위한 표현식자바는 객체 지향 프로그램으로 클래스 생성 후 클래스 안에 메서드와 객체 만들어서 사용함수형 프로그래밍은 객체 지향 프로그래밍과 달리 함수만 구현하고 실행*함수: 클래스에서 독립적, 메서드: 클래스에 종속적#2 람다식 문법'익명 함수'답게 메서드의 이름과 반환 타입을 제거하고 화살표 기호(→)를 사용해 구현생략() 소괄호 생략 : 매개 변수가 한 개인 경우{} 중괄호 생략 : 함수의 return 타입이 없는(void) 경우return 생략 : 중괄호 안의 구현 코드가 return 문만 존재하는 경우 (중괄호, return 모..

개발/Java 2024.07.16

JAVA_12_추상 클래스 & 인터페이스

#1 추상 클래스 & 추상 메서드▶ 추상 클래스란?일반 클래스처럼 독립적으로 생성자를 호출해 객체를 생성할 수 없음자식 클래스의 생성자에서 super()를 통해 추상 클래스의 생성자를 호출하여 부모 객체를 생성한 후 자식 객체를 생성선언: [접근 제한자] abstract class 클래스명 {필드, 생성자, 메서드}자식 클래스들이 반드시 구현해야 하는 메서드가 있다면, 추상 메서드로 해당 메서드를 부모 클래스에 선언추상 클래스를 상속받은 모든 자식 클래스는 반드시 추상 메서드를 오버라이딩 및 재정의하여 구현해야 함 자식 클래스 간의 공통적인 필드와 메서드 이름을 통일반드시 구현해야 하는 메서드를 선언함으로써 공통 규격을 제공▶ 추상 메서드란?구현 내용 없이 구현부가 비어있는 메서드선언: [접근제한자] a..

개발/Java 2024.07.16

JAVA_11_다형성 & 타입 변환

#1 클래스에서의 타입 변환자료형(타입) 변환클래스의 객체 타입 변환: 클래스의 타입 변환은, 상속 관계의 클래스들 간에서만 가능▶ 클래스 자동 타입 변환개발자가 직접 명시해주지 않아도 자동으로 타입 변환이 일어나는 것상속 관계에 있는 자식 클래스의 객체를 부모 타입의 객체로 변환부모 타입으로 변환한 자식 객체는, 부모 클래스에 선언된 멤버(필드, 메서드)만 사용 가능단, 부모 클래스의 메서드를 @오버라이딩한 메서드는 자식 객체의 것을 호출 가능▶ 클래스 강제 타입 변환자식 객체가 부모 타입으로 자동 타입 변환 한 후, 다시 자식 타입으로 변환하는 것개발자가 직접 명시해야만 타입 변환 가능 #2 다형성(polymorphism)▶ 다형성이란?객체 지향 프로그래밍의 대표적인 특징 중 하나하나의 타입으로 다양..

개발/Java 2024.07.16

Java에서의 다중상속

다중 상속이란 하나의 클래스가 두 개 이상의 부모 클래스로부터 상속을 받는 것을 의미합니다. 그러나 JAVA는 모호성 때문에 다중 상속을 지원하지 않습니다. 그렇다면 무슨 모호성 때문일까요? 모호성 문제 하나의 클래스가 여러 부모를 상속 받을 때, 부모 클래스 간에 동일한 이름의 필드나 메소드가 있다면, 어떤 부모 클래스의 필드 또는 메소드인지 알 수 없는 문제가 발생합니다. 예를 들어, 클래스 A와 B가 각각 int형 변수 data를 가지고 있고, 클래스 Child가 A와 B를 상속받는다면 다음과 같은 상황이 발생합니다. class A { int data = 100; } class B { int data = 200; } class Child extends A, B {} // JAVA에서는 이 문법 자체..

개발/Java 2023.07.19

Java의 추상 클래스와 인터페이스의 차이

오늘은 추상 클래스(Abstract Class)와 인터페이스(Interface)의 차이에 대해 살펴보려고 합니다. 두 개념은 상당히 비슷하게 보이지만, 서로 다른 역할을 하는 중요한 구성 요소입니다. 이 둘의 차이점을 이해하는 것은 자바 프로그래밍에서 꼭 필요한 지식입니다. 추상 클래스 (Abstract Class) 추상 클래스는 하나 이상의 추상 메소드(구현되지 않은 메소드)를 포함하는 클래스입니다. 이 클래스를 상속받는 자식 클래스는 부모 클래스의 추상 메소드를 모두 구현해야 합니다. 추상 클래스는 일반적인 클래스처럼 멤버 변수, 생성자, 일반 메소드를 포함할 수 있습니다. 그래서 추상 클래스를 상속받는 클래스는 이미 구현된 일부 기능을 재사용할 수 있습니다. 추상 클래스는 그 자체로는 객체를 생성할..

개발/Java 2023.07.18

Java에서의 인터페이스(Adapter)의 강제성 소멸과 장점

안녕하세요, 이전에는 인터페이스의 기본 개념과 사용 방법에 대해 알아보았습니다. 오늘은 좀 더 심화된 주제로, 인터페이스의 '강제성 소멸'과 '장점'에 대해 알아보겠습니다. 이 글을 통해 인터페이스를 더 깊이 이해하고 효과적으로 사용하는 방법을 배워가실 수 있길 바랍니다. 인터페이스의 강제성 소멸: Adapter 패턴 우선, 인터페이스를 바로 클래스에 지정하게 되면, 모든 메소드를 구현해야 하는 강제성이 생깁니다. 하지만 실제 프로그래밍에서는 인터페이스의 모든 메소드를 사용하지 않을 경우가 많습니다. 어떤 메소드는 필요하지 않거나, 다른 방식으로 구현할 필요가 있을 수 있습니다. 이런 경우에 사용할 수 있는 패턴이 바로 'Adapter 패턴'입니다. 이 패턴을 사용하면, 인터페이스의 메소드 중 필요한 메..

개발/Java 2023.07.18

Java에서의 인터페이스 (Interface)

인터페이스는 클래스와 다르게 '무엇을 할 것인지' 보다 '어떻게 할 것인지'를 중점적으로 정의하는 방법 중 하나입니다. 다시 말해, 인터페이스는 클래스의 행동 방식을 정의하는 규격서 또는 설계도와 같은 것입니다. 인터페이스의 선언 자바에서 인터페이스는 interface 키워드를 사용하여 선언하며, 구조는 아래와 같습니다. interface InterfaceName{ public static final type CONSTANT_NAME = value; public abstract returnType methodName(parameters); } 이때 인터페이스 내에서 선언하는 모든 변수는 자동으로 public, static, final이며, 모든 메소드는 public, abstract입니다. 이 특성들은 ..

개발/Java 2023.07.18
반응형