C 언어 와 디자인 모드 (의 시작)

【 성명: 판권 소유, 전재 환영, 상업 용도 로 사용 하지 마 십시오. 연락처: feixiaoxixing @ 163. com]
    소프트웨어 디자인 에 관 한 책 이 매우 많다. 예 를 들 어, 등 이다.소프트웨어 개발 방식 에 대해 서 는 극한 프로 그래 밍, 유익 한 방법, 민첩 한 방법 이 더 많다.시간 이 지 날수 록 많은 방법 이 다시 제 기 될 것 이다.
    사실 개인 적 으로 는 어떤 방법 이 든 사람 을 떠 날 수 없다.한 사람 이 이 진 트 리 를 쓸 수 없 는데, 너 는 어떻게 그 에 게 쓰 라 고 하 니?민첩 해요?네가 한 줄 을 쓰 고 나 는 한 줄 을 쓴다.아니면 교체?세 줄 을 쓰 고, 두 줄 을 지우 고, 세 줄 을 더 쓰다.프로젝트 의 성공 은 우연 한 것 이지 만 프로젝트 의 실 패 는 많은 원인 이 있다. 관리 가 혼 란 스 럽 고 수요 가 혼 란 스 러 우 며 디자인 이 낮 고 코드 의 질 이 떨 어 지 며 테스트 가 제대로 되 지 못 하 는 등 이다.소프트웨어 기업 으로 서 는 우수한 문화 와 뛰어난 기업 인재 만큼 중요 한 것 이 없다.
    소프트웨어 디자인 차원 에서 볼 때 일반적으로 세 가지 측면 을 포함한다.    (1) 소프트웨어 의 디자인 시청자, 어린이, 노인, 여성, 전문가 등;
    (2) 소프트웨어 의 기본 적 인 디자인 원칙 은 인위적인 근본, 모듈 분리, 차원 이 뚜렷 하고 간략 한 지상, 적용 을 우선 으로 하고 추상 적 인 기본 업무 등 이다.
    (3) 소프트웨어 작성 모델, 예 를 들 어 장식 모델, 책임 체인, 단일 모델 등 이다.
    어떤 의미 에서 볼 때 디자인 사상 은 소프트웨어 의 주 제 를 구성 했다.소프트웨어 원칙 은 우리 가 개발 할 때 반드시 지 켜 야 할 준칙 이다.소프트웨어 작성 모델 은 개발 과정 에서 중요 한 경험 총화 이다.디자인 모델 을 유연 하 게 활용 하면 한편 으로 는 우리 가 고 품질의 코드 를 작성 하 는 데 유리 하고 다른 한편 으로 는 우리 가 코드 를 유지 하 는 데 도 편리 하 다.많은 소프트웨어 개발 자 들 에 게 소프트웨어 의 유지 시간 은 소프트웨어 가 작성 한 시간 보다 훨씬 많 기 때문이다.작성 과정 에서 새로운 수요 가 있 을 수 밖 에 없습니다. 다른 모듈 과 접촉 하려 면 기 존 코드 를 재 활용 해 야 합 니 다. 그러면 디자인 모델 이 도움 이 됩 니 다.우리 가 토론 한 주 제 는 사실 디자인 모델 이다.
    디자인 모델 에 대해 말하자면 사람들 이 가장 먼저 생각 하 는 언어 는 c \ # 또는 자바 이다. 가장 좋 지 않 은 것 도 c + + 이다. 일반적으로 c 언어 를 고려 하 는 사람 은 없다.사실은 디자인 모델 은 기본 적 인 사상 이 라 고 생각 합 니 다. 지나치게 미화 하거나 신 화 는 필요 없습니다.사실 Liux kernel 을 읽 은 친구 들 은 모두 알 고 있 습 니 다. Liux 는 자신 이 많은 파일 시스템 을 지원 하지만 Liux 자체 가 이런 시스템 의 기본 적 인 조작 을 모두 추상 화하 여 기본 적 인 가상 파일 시스템 이 되 었 습 니 다.
    
    예 를 들 어 지금 은 음악 재생 기 를 쓰 라 고 했 지만 지원 할 파일 형식 이 많 습 니 다. ogg, wav, mp3 는 모두 지원 해 야 합 니 다.이 럴 때 당신 은 어떻게 작성 할 것 입 니까?C + + 언어 를 사용 하면 이렇게 쓸 수 있 습 니 다.
class music_file
{
    HANDLE hFile;

public:
    void music_file() {}
    virtual ~music_file() {}
    virtual void read_file() {}
    virtual void play() {}
    virtual void stop() {}
    virtual void back() {}
    virtual void front() {}
    virtual void up() {}
    virtual void down() {}    
};
    사실 생각해 보 세 요. 만약 에 C 언어 로 똑 같은 추상 적 인 조작 을 완성 할 수 있다 면 효과 가 똑 같 지 않 습 니까?
typedef struct _music_file
{
    HANDLE hFile;
    void (*read_file)(struct _music_file* pMusicFile);
    void (*play)(struct _music_file* pMusicFile);
    void (*stop)(struct _music_file* pMusicFile);
    void (*back)(struct _music_file* pMusicFile);
    void (*front)(struct _music_file* pMusicFile);
    void (*down)(struct _music_file* pMusicFile);
    void (*up)(struct _music_file* pMusicFile);           
}music_file;
    물론 위의 예 는 비교적 간단 하지만 몇 가지 문 제 를 설명 할 수 있다.이 글 을 쓰 는 목적 은 첫째, 친구 들 과 함께 학습 모델 에 관 한 내용 을 원 하 는 것 이 고, 다른 한편 으로 는 친구 들 이 권 위 를 미신 하지 도 않 고 함부로 자신 을 비하 하지 도 않 기 를 바 라 는 것 이다.노력 하고 땀 을 흘 리 면 반드시 수확 이 있 을 것 이다.어떤 큰 환경 은 네가 바 꿀 수 없다. 그러면 자신 을 바 꾸 는 것 부터 시작 해라.만 장의 고 층 건물 이 평지 에서 일어나 한 걸음 한 걸음 발자국 이 있어 야 진정 으로 배 울 수 있다.맹목적 으로 숭배 한다 면 구 글, 마이크로소프트, 애플 을 가 져 오 는 것 외 에 어떤 도움 이 될 까?말 을 헛 되 게 했 을 뿐이다.
    여러분 과 함께 격려 하 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기