전문 직업에서 처음으로 우리는 기본, 일반적인 소프트웨어 및 고객이 원하는 방식으로 작동하도록하는 인터페이스가 포함 된 고객에게 DLL을 제공해야합니다. 고객이 입력 및 판독 출력을 공급할 수 있습니다.고객과 함께 C++ DLL 및 H 파일 공유
여기 내 큰 문제는 내 고객에게 지적 재산권 때문에 절대적으로 알 필요가없는 것을 보여주지 않을 수도 있다는 것입니다. 여기에는 데이터 유형이 포함되어 있으므로 내부적 방법에 대한 서명도 표시 할 수 없습니다. 필자는 내부 유형을 모방 한 데이터 유형과 구조를 만들었지 만, 예를 들어 자발적으로 불필요한 속성/요소를 생략하거나 사적인 내부 논리에 대한 힌트를 숨기기 위해 다른 이름을 부여합니다. 그리고 나서 데이터를 얻는 메소드는 우리 자신의 데이터 구조를 맵핑하고 그것들에 입력합니다. 너는 그림을 얻는다.
순수한 소프트웨어 아키텍처 관점에서 보면, 나는 그가 특정 구성원, 속성, 변수에 액세스하는 것을 원하지 않습니다. 왜냐하면 그 사람이 존재한다는 것을 알 필요가 없기 때문입니다. 그가 기뻐할 때, 그가 기뻐할 때 그들을 수정하십시오. 그러나 그것들은 그 인터페이스와 전적으로 관련이 있으며 우리의 내부 소프트웨어의 일부가 아닙니다.
제가 지금 가지고있는 것은 인스턴스로 만들 수있는 인터페이스 역할을하는 클래스입니다. 그것은 기본적으로 출력을위한 메소드를 얻고, 입력을 공급하고 업데이트 계산을 시작하는 메소드와 다른 매개 변수 및 값 (소프트웨어 버전 또는 현재 상태와 같은)에 대한 getter 및 setter를 제공합니다. 이러한 매개 변수 및 다른 변수에 대한 실제 데이터 변수는 DLL로 컴파일 된 CPP 파일에 숨겨져 있으므로 H 파일의 인터페이스로 사용하는 클래스의 특성으로 선언되지도 않습니다. 사적인 것으로서 그는 그들에 대해 모른다. 그는 단지 getter와 setter만을 가지고있다.
여기에서 어떤 디자인 패턴을 사용해야합니까? 실제로 내 변수를 내 고객과 공유하는 H 파일에 클래스의 속성으로 비공개로 넣을 수 있습니까? 그렇다면 그는 개인을 공개적으로 변경하고 클래스에 대한 새로운 메소드를 작성하고 컴파일러에 불평하지 않고 자유롭게 수정할 수 있습니까? 다른 방법으로 수업에 참여하고 CPP 파일이나 액세스 할 수없는 다른 H 파일로 확장 할 수 있습니까?
많은 질문이 있습니다. 새로운 질문입니다. 그러나 당신은 일반적인 그림을 얻습니다 : 나는이 H 파일에서 고객과 최대한의 최소한의 정보를 공유하기를 원하기 때문에 DLL을 만들고 데이터 출력을 얻을 수 있습니다. 그리고 더 이상. 사전에
감사, 내가 여기에 사용해야 어떤 디자인 패턴
이것은 DLL 질문을 전혀 다루지 않습니다. –
읽어보십시오. 그래서 이것은 기본적으로 숨기고 싶은 변수를 포함하여 구현 본문의 전방 선언에 의존합니다. 선언은 1. 컴파일 과정의 후반 단계로 연기되었으므로 오류가 아직 발생하지 않았으며 2. 고객과 공유하지 않는 다른 파일 내 고객이 구현 본문을 선언하지 않고 H 파일을 가지고 있고 내부에 선언 (및 정의)이 포함 된 DLL이있는 경우 컴파일 할 수 있습니까? – Charles
@ Moo-Juice 그건 내가 두려워하는거야. 다시 말하지만, 누군가가 더 좋은 제안을하지 않는다면 내 고객은 자신이 필요로하는 수출 물건을 선언하는 DLL과 H 파일 만 갖게됩니다. – Charles