디자인 모델 전편: 대상 을 향 한 개념 을 함께 살 펴 보 자.
대상 지향 및 프로 세 스 지향:
아니면 대상 과 과정 을 대상 으로 하 는 기본 개념 을 다시 한 번 살 펴 볼 필요 가 있다 고 생각 하 는 지 이것 은 인류 사고방식 발전의 표현 이다.
대상 지향 프로 그래 밍:
대상 을 대상 으로 프로 그래 밍 (Object Oriented Programming, OOP) 은 모든 예비 처리 문 제 를 대상 으로 추상 화하 여 대상 의 실제 문 제 를 해결 하 는 사상 이다.본질은 현실 세계 의 대상 에 대해 모델 링 작업 을 하 는 것 이다.
요약 하면 대상 을 대상 으로 해결 해 야 할 문 제 를 현실 세계 의 규칙 에 따라 하나의 대상 으로 분해 하여 처리 하고 기능 에 따라 특정한 사물 자체 의 속성 과 행 위 를 나눈다.
프로 세 스 지향 프로 그래 밍:
프로 세 스 프로 그래 밍 (Procedure Oriented Programming, POP) 은 프로 그래 밍 사상 이다.이 는 모든 예비 처리 문 제 를 일련의 완성 해 야 할 임무 로 보고 함 수 는 이러한 임 무 를 완성 하 는 데 사용 되 며 문 제 를 해결 하 는 초점 은 함수 에 집중 된다.
한 마디 로 하면 프로 세 스 프로 그래 밍 을 통 해 해결 해 야 할 문 제 를 절차 에 따라 처리 한 다음 에 함수 로 한 걸음 한 걸음 실현 하고 사용 할 때 한 사람 씩 순서대로 호출 한다.
예 를 들 어:
모두 가 프로 그래 밍 을 접 하 는 것 은 네 가지 연산 으로 시작 되 었 다 고 믿 습 니 다. 다음은 곱셈 을 가감 하 는 알고리즘 으로 대상 을 대상 으로 하 는 것 과 과정 을 구별 하 겠 습 니 다.
해결 해 야 할 문제: 사 칙 연산 으로 두 개의 수 를 계산 합 니 다 (본 예 는 정밀도 와 비 0 문 제 를 잠시 무시 합 니 다).
프로 세 스 프로 그래 밍 은 매우 간단 하 다. 가감 곱셈 의 기능 을 함수 에 따라 구분 한 다음 에 순서에 따라 한 걸음 한 걸음 실현 한다.다음 과 같다.
public class Program {
public static void main(String[] args) {
int num1 = 4;
int num2 = 2;
//
System.out.println(add(num1, num2));
//
System.out.println(subtract(num1,num2));
//
System.out.println(multiply(num1,num2));
//
System.out.println(divide(num1,num2));
}
public static int add(int a, int b) {
return a + b;
}
public static int subtract(int a, int b) {
return a - b;
}
public static int multiply(int a, int b) {
return a * b;
}
public static int divide(int a, int b) {
return a / b;
}
}
다시 대상 을 향 한 실현 을 보면 곱셈 을 가감 하 는 것 은 일종 의 연산 행위 이 고 비슷 한 사물 이다.따라서 사 칙 연산 의 기능 을 하나의 연산 류 로 추상 화하 는데 이런 기능 은 바로 사 칙 연산 만 하 는 것 이다.코드 는 다음 과 같 습 니 다:
public class Operation {
public static int add(int a, int b) {
return a + b;
}
public static int subtract(int a, int b) {
return a - b;
}
public static int multiply(int a, int b) {
return a * b;
}
public static int divide(int a, int b) {
return a / b;
}
}
Program 류 의 방법 을 다시 고 칩 시다.
public class Program2 {
public static void main(String[] args) {
int num1 = 4;
int num2 = 2;
//
System.out.println(Operation.add(num1,num2));
//
System.out.println(Operation.subtract(num1,num2));
//
System.out.println(Operation.multiply(num1,num2));
//
System.out.println(Operation.divide(num1,num2));
}
}
차이 점 을 알 면 차이 가 많 지 않 고 장단 점 을 귀납 하지 않 으 면 분명 하 다.본론 으로 들 어가 보 겠 습 니 다.
대상 지향 네 가지 특징:
이 네 가지 특징 이다. 추상, 포장, 계승, 다 형, 다음 하 나 는 간단 하 다.
추상:
현실 세계 의 규칙 으로 비슷 한 사물 의 속성 과 행 위 를 추출 하여 하나의 모델 을 구성 하 는데 이런 연구 문 제 를 추상 이 라 고 한다.
아까 의 연산 류 와 같이 비슷 한 행위 (가감 승수 기능) 를 추출 하여 하나의 유형 을 구성 했다.
패키지:
추상 적 인 데이터 형식 을 이용 하여 데이터 와 데 이 터 를 바탕 으로 하 는 조작 을 패키지 하여 분리 할 수 없 는 독립 된 실 체 를 구성 하고 대상 의 내 부 를 최대한 숨 기 고 디 테 일 을 실현 하 는 과정 을 패키지 라 고 한다.
패 키 징 의 중점 은 접근 속성 (Public, private, proctected) 에 있 습 니 다.예 를 들 어 우리 가 컴퓨터 를 사용 할 때 마우스 나 키보드 만 사용 하면 컴퓨터 를 조작 하여 일부 기능 을 실현 할 수 있 고 컴퓨터 내부 의 작업 원 리 를 알 필요 가 없다.따라서 키보드 와 마 우 스 는 우리 에 게 퍼 블 릭 이 고 컴퓨터 내부 의 기능 은 private 이다.
계승:
여러 종류 가 같은 속성 과 행 위 를 가지 고 있 을 때 이런 종 류 는 하나의 부 류 를 추상 화 할 수 있다.하위 클래스 는 부모 클래스 를 계승 한 후 부모 클래스 의 속성 과 행 위 를 가 지 는 동시에 새로운 기능 을 확장 할 수 있 습 니 다.자 류 와 부계 의 관 계 를 계승 이 라 고 한다.
현실 적 인 예 를 들다.조류 동물 은 모두 깃털 과 날개 (속성) 를 가지 고 있 으 며, 알 을 낳 아 후 대 를 번식 시킨다.기러기 는 일종 의 조류 로 깃털 과 날개 도 있 고 알 도 낳 을 수 있다.
다 중:
같은 조작 이 서로 다른 대상 에 작용 하면 서로 다른 해석 을 하고 서로 다른 집행 결 과 를 낼 수 있 는데 이것 이 바로 다 태 성 이다.
자바 언어 를 예 로 들 어 다 형 을 실현 하 는 데 세 가지 필요 한 조건 이 있다. 추상 류 와 인터페이스, 재 작성, 향상 전환 이다.코드 예:
조건 1: 인터페이스.우선 Fly 인 터 페 이 스 를 정의 합 니 다. 먼저:
public interface Fly {
void flyaway();
}
조건 2: 인터페이스 재 작성 방법.아래 에는 펭귄 한 마리 와 기러기 한 마리 가 있다.
public class Penguin implements Fly {
@Override
public void flyaway() {
System.out.println(" !");
}
}
public class WildGoose implements Fly{
@Override
public void flyaway() {
System.out.println(" !");
}
}
조건 3: 위로 전환, 부 류 는 하위 클래스 대상 을 참조 합 니 다.주 함수 직접 보기:
public static void main(String[] args) {
Fly fly = new WildGoose();
fly.flyaway();// !
fly = new Penguin();
fly.flyaway(); // !
}
간단하게 한 번 훑 어보 면 인터페이스, 재 작성, 위로 전환 등 개념 이 포함 되 어 있 지 않 습 니 다. 참고 서 나 다른 글 을 참고 하 셔 도 됩 니 다.
대상 지향 6 가지 원칙:
개인 적 으로 가장 쉽게 이해 할 수 있다 고 생각 하 는 언어 로 정리 해 보 세 요.각각 이 여섯 가지 가 있다. 단일 직책 원칙, 개폐 원칙, 리 씨 교체 원칙, 후진 원칙, 인터페이스 격 리 원칙, 디 미트 원칙 에 의존한다.
단일 직책 원칙
단일 직책 원칙 (Single Responsibility Principle, SRP) 은 하나의 유형 에 있어 서 변 화 를 일 으 키 는 원인 만 있어 야 한다 고 정의 했다.
간단 하 다 는 뜻 은 디자인 유형 에서 실현 되 는 기능 이 단일 해 야 하고 가능 한 한 한 가지 일 만 해 야 하 며 많은 기능 을 한 가지 유형 에 써 서 는 안 된다 는 것 이다.
개폐 원칙
개폐 원칙 (Open Close Principle, OCP) 은 소프트웨어 의 대상 (클래스, 모듈, 함수 등) 이 확장 에 개방 되 어야 하 며 수정 에 대해 서 는 폐쇄 되 어야 한다 고 정의 했다.
확장 개방, 수정 폐쇄, 즉 수요 가 바 뀌 었 을 때 원래 코드 를 수정 하 는 것 이 아니 라 원래 코드 를 확장 해 야 한 다 는 뜻 입 니 다. 더 많은 문 제 를 일 으 킬 수 있 기 때 문 입 니 다.
리 씨 교체 원칙
리 씨 교체 원칙 (Liskov Substitution Principle, LSP) 은 기본 클래스 를 참조 하 는 곳 에서 하위 클래스 를 투명 하 게 사용 해 야 한다 고 정의 했다.
부계 가 나타 나 는 지방 자 류 만 나타 날 수 있다 는 원칙 은 계승 과 다 태 에 의존한다.하위 클래스 는 부모 클래스 의 기능 을 확장 할 수 있 지만 부모 클래스 의 원래 기능 을 바 꾸 어 전체 계승 체 계 를 파괴 하지 않도록 해 서 는 안 된다.
후진 원칙 에 의존 하 다.
후진 원칙 (Dependence Inversion Principle, DIP) 에 의존 하 는 것 은 고 층 모듈 이 바 텀 모듈 에 의존 해 서 는 안 되 고 둘 다 추상 에 의존 해 야 한다 고 정의 한다.추상 은 세부 사항 에 의존 해 서 는 안 된다.세부 사항 은 추상 에 의존 해 야 한다.인터페이스 프로 그래 밍 으로 요약 할 수 있다.
이 원칙 은 구성원 변수, 방법 을 설명 하 는 매개 변수 나 유형 을 되 돌 릴 때 구체 적 인 유형 이 아 닌 추상 적 인 유형 (추상 적 인 유형 이나 인터페이스) 을 사용 하 는 것 으로 이해 할 수 있다.
인터페이스 격 리 원칙
인터페이스 격 리 원칙 (Interface Segregation Principle, ISP) 은 클 라 이언 트 가 필요 하지 않 은 인터페이스 에 의존 해 서 는 안 된다 고 정의 합 니 다.또 다른 정 의 는 클래스 간 의존 관 계 는 최소 인터페이스 에 세 워 져 야 한 다 는 것 이다.
자바 에서 인 터 페 이 스 를 실현 하면 인터페이스의 모든 방법 을 실현 할 수 있다.쉽게 말 하면 인 터 페 이 스 를 너무 비대 하 게 쓰 지 말고 분리 해 야 한다. 다른 유형 도 같은 인 터 페 이 스 를 사용 할 때 빈 방법 을 피 할 수 있다.
디 미트 원칙
디 미트 원칙 (Law Of Demeter, LOD) 은 최소 지식 원칙 이 라 고도 부른다.대상 을 정의 하려 면 다른 대상 에 대해 최소한 의 이 해 를 가 져 야 한다.
친구 와 만 통신 한 다 는 뜻 이다.모든 종 류 는 반드시 다른 종류의 속성 과 방법 을 사용 하 는데 이것 을 결합 이 라 고 한다.디자인 류 를 디자인 할 때 기능 을 분리 하고 가능 한 한 제3자 의 친 구 를 이용 하여 이들 의 통신 을 해 야 한다.
요약:
4 대 특징 과 6 대 원칙 은 대상 을 대상 으로 하 는 것 이 사실 이라는 것 을 깨 달 았 다.이 글 은 단지 간단하게 한 번 훑 어 보 았 을 뿐, 모든 개념 에는 아직 많은 세부 사항 이 언급 되 지 않 았 는데, 주로 디자인 모델 을 깔 고 기 초 를 한 번 훑 어 보 았 다.
특히 원칙 을 따 르 는 것 은 변화무쌍 한 수요 에 대응 하기 위해 가능 한 한 자신 에 게 미 치 는 영향 을 최소 화하 기 위 한 것 이다. 이런 원칙 들 은 모두 선인 들 이 경험 으로 정리 한 것 이지 결론 이 아니다.그래서 모든 유형 이 6 대 원칙 을 지 켜 야 하 는 것 이 아니 라 오히려 과도 한 설 계 를 초래 할 수 있다.
전재 출처 를 밝 혀 주세요:https://www.jianshu.com/p/11a08bf34e77
추천
기초 편: 디자인 모델 전편 의 UML 아 날로 그 필수 지식
디자인 모델 전편 의 - 대상 을 대상 으로 하 는 개념 창설 형 모델 을 함께 살 펴 보 자. 디자인 모델 을 간단하게 이해 할 수 있다. 간단 한 공장 모델 - 결제 기능 에 접속 하여 디자인 모델 을 간단하게 이해 해 보 자. 공장 방법 모델 - 데이터 저장 사례 는 디자인 모델 을 간단하게 이해 할 수 있다. 추상 적 인 공장 모델 - 데이터 베 이 스 를 바 꾸 는 사례 는 디자인 모델 을 간단하게 이해 할 수 있다.제조 자 모델 - '체인 호출' 을 사용 하여 디자인 모델 을 간단하게 이해 하 는 것 을 배 웁 니 다. 원형 모델 - 깊이,얕 은 카피 의 개념 은 디자인 모델 을 간단하게 이해 할 수 있다. 단 례 모델 인 단 례 모델 의 몇 가지 상용 문법 구조 모델: 디자인 모델 을 간단하게 이해 할 수 있다. 어댑터 모델 인 Android 리스트 보기 컨트롤 러 의 디자인 방식 은 디자인 모델 을 간단하게 이해한다. 즉, 브리지 모델 인 옷 을 입 는 전형 적 인 사례 2 디자인 모델 을 간단하게 이해 할 수 있다. 조합 모델 인 View 중의 트 리 를 실현 한다.모양 구조 간단 한 이해 디자인 모델 의: 장식 모델 - 옷 을 입 는 전형 적 인 사례 간단 한 이해 디자인 모델 의: 외관 모델 - 제3자 SDK 의 도움 류 간단 한 이해 디자인 모델 의: 향 원 모델 - 오목 게임 사례 간단 한 이해 디자인 모델 의: 대리 모델 - iOS 보기 컨트롤 디자인 방식 행위 모델: 간단 한 이해 디자인 모델 의:전략 모델 - 결제 기능 의 간단 한 이해 디자인 모델 을 최적화 하 는 것: 템 플 릿 방법 모델 - 안 드 로 이 드 중의 BaseActivity 기본 클래스 의 간단 한 이해 디자인 모델: 관찰자 모델 - 감청 과 반전 간단 한 이해 디자인 모델 의: 상태 모델 - 로그 인 조작 을 최적화 하고 디자인 모델 을 간단하게 이해 하 는 것: 비망록 모델 - Word 문서 의 작업 원리 가 간단 하고 쉽다.디자인 모델 을 푸 는 것: 교체 기 모델 - 대상 을 옮 겨 다 니 는 좋 은 도 우미 가 디자인 모델 을 간단하게 이해 하 는 것: 명령 모델 - 명령 을 실현 하 는 매개 변수 화 설정 이 디자인 모델 을 쉽게 이해 하 는 것: 책임 체인 모델 - OA 에서 휴가 를 내 는 절차 예제 가 디자인 모델 을 간단하게 이해 하 는 것: 중개자 모델 - 다 중 채 팅 방 사례 가 디자인 모델 을 간단하게 이해 하 는 것: 해석 기 모델 - 언어언 과 문법 은 디자인 모델 을 간단하게 이해 할 수 있다. 방문 자 모델 인 직원 평가 사례 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.