C 언어와 디자인 패턴 (상속, 캡슐화, 다형성)

기사 디렉토리

머리말

  교사가, C ++의 객체 지향 언어라고 우리에게 이야기 할 때 우리는 여전히 최초의 C ++ 대학 과정을 기억한다. C ++는 세 가지 중요한 특성, 즉, 상속, 캡슐화, 다형성을 갖는다. 나중에 경험의 축적이 증가 될 때까지 기다리 및 코딩, 나는 천천히 객체 지향의 의미를 이해한다. 그러나, 나의 일 후, 프로그래밍 언어 C 언어를 사용하여 나는 C 언어는 객체 지향 언어가 수행 될 수 있습니다 원하는이 시간, 더? 나중에 생각과 실천에 의해 때까지 기다리십시오, 나는 C 언어, 또한 객체 지향 언어의 세 가지 중요한 특성을 달성하는 방법의 핵심 거짓말을 적용 할 수있는 객체 지향 디자인 패턴도 가능하다는 것을 찾을 수 있습니다.

연속

typedef struct _parent
{
    int data_parent;
 
}Parent;
 
typedef struct _Child
{
    struct _parent parent;
    int data_child;
 
}Child;

 C 언어 상속을 설계 할 때, 우리는 구조를 상속하는 첫 번째 위치를 기준으로 데이터를 입력하는 것입니다 할 필요가있다. 이 방식으로, 데이터에 데이터, 강력한 전송 데이터 액세스에 액세스 여부를 문제가되지 않습니다.

캡슐화

struct _Data;
 
typedef  void (*process)(struct _Data* pData);
 
typedef struct _Data
{
    int value;
    process pProcess;
    
}Data;

 캡슐화의 의의는 기능과 데이터를 서로 연결하고, 데이터가 서로 연결되어 있다는 것입니다. 이러한 방법으로, 우리는 모든 기능을 통해 구조에 대한 간단한 포인터를 통해 데이터 모두에 대한 액세스 권한을 가질 수 있습니다. 물론, 클래스 속성에 의해 소유 캡슐화, 소유 속성의 데이터 구조.

다형성

typedef struct _Play
{
    void* pData;
    void (*start_play)(struct _Play* pPlay);
}Play;

 인 다형성은 상이한 데이터 인터페이스 코드와 동일한 처리라고한다. 예를 들어, 다음 플레이 구조는 일반적인 데이터 구조입니다, 우리는 무엇을 pData의 데이터 start_play 어떤 핸들러를 몰라? 우리가 다루고있는 때, 단순히에 pPlay-> start_play (pPlay)로 전화하십시오. 다른 인터페이스를 처리하는 다른 기능을 가지고 있기 때문에 우리가 제어하지 않는 나머지 것들, 우리는 그냥 전화를 배울 수있다.

게시 된 259 개 원래 기사 · 원 찬양 6 · 전망 8094

추천

출처blog.csdn.net/qq_23929673/article/details/103538240