디자인 모델-대상 지향 개념
추상 류
에서 추상 류 에 대해 이렇게 정의 했다.추상 류 의 이러한 목적 은 그의 하위 류 를 위해 공공 인 터 페 이 스 를 정의 하 는 것 이 고 예화 되 어 서 는 안 된다.
public abstract void noAction();
이 방법 은 설명 만 하고 방법 체 가 없 으 며 void 앞 에 abstract 키워드 가 나타 납 니 다.우 리 는 이 방법 을 추상 적 인 방법 이 라 고 부 르 고 이런 방법 은 abstract 키 워드 를 붙 입 니 다.추상 적 인 방법 을 포함 하 는 종 류 를'추상 류'라 고 한다.만약 한 종류 가 하나 이상 의 추상 적 인 방법 을 포함한다 면,이 종 류 는 반드시 추상 적 인 것 으로 한정 되 어야 한다.
인터페이스 와 달리 추상 류 는 추상 적 이지 않 은 방법 이 있 을 수 있 기 때문에 추상 류 중의 추상 적 인 방법 은 반드시 abstract 키 워드 를 붙 여야 하고 인 터 페 이 스 는 필요 하지 않다.인터페이스 에서 모든 방법 이 추상 적 이기 때문이다.또한 추상 류 는 자바 언어 에서 일종 의 계승 관 계 를 나타 내 고 한 종 류 는 한 번 만 계승 관 계 를 사용 할 수 있다.그러나 한 종 류 는 여러 인 터 페 이 스 를 실현 할 수 있다.
예시:
abstract class Instrment {
private int i;// ,
public abstract void play(Note n);
public String what() { return ""; } //
}
인터페이스
에서 인 터 페 이 스 는 이렇게 정의 되 었 다.대상 이 정의 하 는 모든 조작 형 구조의 집합 은 이 대상 의 인터페이스 라 고 불 린 다.대상 인 터 페 이 스 는 대상 이 받 아들 일 수 있 는 모든 요청 의 집합 을 설명 하 며,대상 인터페이스 중형 구조 와 일치 하 는 모든 요청 을 대상 에 게 보 낼 수 있 습 니 다.
인터페이스의 모든 변 수 는 정적(static)과 최종(final)입 니 다.프로그램 에 명확 한 표시 가 없 으 면 컴 파일 러 는 자동 으로 이 두 키 워드 를 추가 합 니 다.
또한 인터페이스 에 있 는 모든 방법 은 Public 입 니 다.Public 를 표시 하지 않 으 면 컴 파일 러 는 자동 으로 Public 키 워드 를 붙 입 니 다.또한 인터페이스 에 있 는 방법 은 private 와 proctected 키 워드 를 사용 하여 수식 할 수 없습니다.
예시:
interface Instrument {
int VALUE = 5; //public ,static and final,
void play(Note n); //Automatically public and abstract
}
3.대상 을 대상 으로 설계 하 는 원칙:
1.인터페이스 프로 그래 밍 이 아니 라 프로 그래 밍(반전 원칙 에 의존)
대상 을 대상 으로 하 는 디자인 에 서 는 실현 류 가 아 닌 인터페이스 프로 그래 밍 을 해 야 한다.이렇게 하면 하위 클래스 를 바 꾸 는 것 은 그 방법 을 호출 하 는 코드 에 영향 을 주지 않 고 각 클래스 가 가능 한 한 다른 사람과 연락 을 적 게 해 야 확장 성과 유지 성 이 향상 된다.따라서 변 수 를 특정한 구체 적 인 유형의 인 스 턴 스 대상 으로 설명 하지 않 고 추상 류 가 정의 하 는 인 터 페 이 스 를 따 르 게 합 니 다.
2.상속 이 아 닌 대상 조합 우선 사용
클래스 계승,만약 에 계승 한 실현 이 새로운 문 제 를 해결 하 는 데 적합 하지 않 으 면 부 류 는 반드시 다시 쓰 거나 부 류 를 다시 써 야 한다.이 부 류 를 계승 하 는 여러 가지 유형 은 모두 다시 써 야 할 수도 있다.하나의 해결 방법 은 추상 류 를 최대한 계승 하 는 것 이다.대상 조합 은 한 가지 유형 에서 다른 유형 을 인용 하 는 것 이 고 대상 조합 은 상기 유형의 계승 에 발생 하 는 문 제 를 피 할 수 있다.왜냐하면 조합 은 대상 에 게 서로의 인터페이스 약속 을 지 키 도록 요구 하기 때문이다.대상 의 실현 은 인터페이스 에 의 해 작 성 된 것 이기 때문에 실현 에 있어 비교적 적은 의존 관계 가 존재 한다.
3.추상 류
좋 은 계승 관계 에서 잎 노드 만 구체 적 인 유형 이 고 다른 노드 는 모두 추상 적 인 유형 이 어야 한다.즉,구체 적 인 유형 은 계승 되 지 않 기 때문에 가능 한 한 많은 공동 코드 를 추상 적 인 유형 에 넣 어야 한다.
4.'개-폐'원칙
모듈 대응 확장 은 개방 적 이 고 수정 은 폐쇄 적 이라는 것 이다.극단 적 인 상황 에서 기 존 코드 를 수정 할 필요 가 없다 는 것 이다.새로운 기능 은 하위 클래스,리 셋 또는 에이 전 트 를 통 해 기 존 코드 에 의뢰 할 필요 가 없다.기 존 코드 에 bug 를 도입 하 는 것 을 방지 할 수 있 습 니 다.기 존 코드 가 바 뀌 지 않 으 면 새로운 문제 가 발생 하지 않 기 때 문 입 니 다.
5.리 씨 교체 원칙
리 씨 교체 원칙 은'바 바라 리 스 코 프'가 제시 한 것 이다.부모 클래스 를 호출 하면 하위 클래스 로 바 꿔 도 충분히 실행 할 수 있 습 니 다.이것 이 바로 인 터 페 이 스 를 실현 하 는 클래스 에서 인터페이스의 모든 방법 을 실현 해 야 하 는 이유 입 니 다.그렇지 않 으 면 자바 해석 기 가 정상적으로 설명 하지 못 하 는 이유 입 니 다.
6.인터페이스 격 리 원칙
맞 춤 형 서비스의 예 를 들 어 모든 인 터 페 이 스 는 하나의 역할 이 어야 한다.많 지 않 고 적지 않 으 며 하지 말 아야 할 일 을 하지 않 고 해 야 할 일 을 해 야 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.