MQL5의 OOP에 대한 질문 - 페이지 56

 
Aleksey Mavrin :

당신은 이미 내가 바보이고 아무것도 이해하지 못한다고, 오랫동안 당신에게 정당한 섹스를 보내지 않은 내 인내심이 자랑 스럽습니다.

사실, 중첩된 클래스는 비공개 필드에 대한 공개 메서드를 선택 사항으로 만듭니다. 이는 정확히 당신이 말하는 캡슐화 위반입니다. 다른 주장은 무엇입니까?

당신은 당신의 어리 석음을 꾸준히 보여 주므로 차라리 당신을 거기에 보낼 가치가 있습니다.

중첩 클래스는 사용자가 작성하는 작업을 수행하지 않습니다. 그리고 가디언 패턴의 작업은 중첩된 클래스와 불필요한 공용 메서드 없이 해결할 수 있습니다.

다음은 중첩 클래스와 공용 메서드가 있는 예입니다.

 
Dmitry Fedoseev :

당신은 당신의 어리 석음을 꾸준히 보여 주므로 차라리 당신을 거기에 보낼 가치가 있습니다.

중첩 클래스는 사용자가 작성하는 작업을 수행하지 않습니다. 그리고 가디언 패턴의 작업은 중첩된 클래스와 불필요한 공용 메서드 없이 해결할 수 있습니다.

결국 누가 갈지 보자))

중첩 클래스가 하지 않는 것은 무엇입니까?

"공개 메소드가 개인 필드에 대해 생성되기 때문에 캡슐화가 깨졌습니다"라고 썼습니다.

중첩 클래스는 공개 메소드를 생성하지 않고도 비공개 필드에 액세스할 수 있습니다.

추신 등급으로 판단하면 당신은 여기 단골입니다. 그러나 의사 소통과 대화를 배워야합니다. 그러나 당신은 당신의 삶에서 이것을 볼 필요가 없습니다.

 
Aleksey Mavrin :

결국 누가 갈지 보자))

중첩 클래스가 하지 않는 것은 무엇입니까?

"공개 메소드가 개인 필드에 대해 생성되기 때문에 캡슐화가 깨졌습니다"라고 썼습니다.

중첩된 클래스는 공용 메서드를 만들 필요 없이 개인 필드에 액세스할 수 있습니다.

추신 등급으로 판단하면 당신은 여기 단골입니다. 그러나 의사 소통과 대화를 배워야합니다. 그러나 당신은 당신의 삶에서 이것을 볼 필요가 없습니다.

다음은 중첩된 클래스와 공용 메서드가 있는 예입니다(즉, 중첩된 클래스는 공용 메서드를 생성할 필요성을 없애는 데 전혀 도움이 되지 않았습니다).

중첩된 클래스는 객체가 아니라 클래스의 가시성의 문제입니다. 중첩 클래스를 사용하면 설명된 클래스 외부에서 이 클래스의 개체를 생성할 수 없습니다. 그러므로 당신은 가야 할 것입니다.

 
Aleksey Mavrin :

그것이 바로 올바른 구조입니다. 이렇게 하려면 바로 이 구조에 대해 가능한 모든 옵션을 고려하고 이 작업에서 장단점을 분석하고(확장성 및 유지 관리에 대한 요구 사항 등을 고려하여) 최상의 옵션을 선택하는 것이 좋습니다.

그리고 여기에 있는 악명 높은 패턴 자체(구체적으로 의미하는 것이 무엇이든 간에)는 구조의 변형이 아니라 단순히 두뇌가 작동하는 기준점입니다. "만약 문제가 패턴 X의 문제에 대한 설명에 맞으면 패턴 X를 적용하여 해결할 수 있습니다."와 같이, 하지만 다른 많은 방법으로 해결할 수 있습니다.

그리고 일반적으로 이러한 기본 27 패턴은 결국 OOP의 원칙을 준수하면서 해결하는 방법에 대한 일반적인 작업에 대한 프로그래머에 대한 힌트로 한 번에 태어났습니다. Dmitry가 구조에 대해 했던 것처럼 원칙을 따를 가치가 없다면 패턴이 필요하지 않습니다.

좋은 게시물 감사합니다

당신은 토론의 나머지 참가자와 다릅니다;)

 
Dmitry Fedoseev :

다음은 중첩된 클래스와 공용 메서드가 있는 예입니다(즉, 중첩된 클래스는 공용 메서드를 생성할 필요성을 없애는 데 전혀 도움이 되지 않았습니다).

중첩된 클래스는 객체가 아니라 클래스의 가시성의 문제입니다. 중첩 클래스 사용하면 설명된 클래스 외부에서 이 클래스의 개체를 생성할 수 없습니다 . 그러므로 당신은 가야 할 것입니다.

No)) 어리석음)) 중첩된 클래스는 중첩된 클래스의 모든 개인 필드에 액세스할 수 있습니다. 몰라? 말할 것도 없다는 것이 분명합니다))

그리고 이것은 스냅샷에 대해 전체 개체를 복사해야 한다고 쓴 말도 안되는 소리를 계산하는 것이 아닙니다.

 
Igor Makanu :

좋은 게시물 감사합니다

당신은 토론의 나머지 참가자와 다릅니다;)

Igor, 당신의 친절한 말에 감사드립니다) 그리고 건설적인 상호 유익한 토론을 위해 흥미로운 주제를 만든다는 사실에 감사합니다.)

 
Aleksey Mavrin :

No)) 어리석음)) 중첩된 클래스는 중첩된 클래스의 모든 개인 필드에 액세스할 수 있습니다. 몰라? 말할 것도 없다는 것이 분명합니다))

그리고 이것은 Snapshot에 대해 전체 개체를 복사해야 한다고 쓴 넌센스를 계산하는 것이 아닙니다.

중첩 클래스를 무엇이라고 합니까?

나는 여기에 사진에 대해 아무 것도 쓰지 않았다.

 
class C1{
   protected :
       int x;
       class C2{
         protected :
         public :
         C2(){
            x= 1 ;
         }
      };      
   public :
};

C2에서 x에 대한 액세스는 어디에 있습니까?

반복하지만 중첩 클래스는 객체 생성 에 대한 클래스 가시성의 문제일 뿐입니다. 클래스 C2의 개체는 클래스 C1 내부에서만 만들 수 있습니다. 그리고 그게 다야. 레코드 유형과의 유일한 차이점은 다음과 같습니다.

 class C1{
   protected :
       int x;
   public :
};

class C2{
   protected :
   public :
   C2(){
      x= 1 ;
   }
}; 


그러나 물론 다른 중첩 클래스를 호출합니까? 말해봐.

 
아 아 )
 
TheXpert :
아 아 )

나도 몰랐어?