OOP 대 절차 프로그래밍 - 페이지 34

 
Andrei :

필요한 모든 변수의 현재 값을 알아야 할 때 코드를 적절히 디버깅할 수 없다는 것은 말할 것도 없고, 모든 것을 모든 것에서 격리하면 그러한 코드를 처리하는 것이 훨씬 더 어려워진다는 것이 요점입니다. ..

트레이드 프로세서 인터페이스를 사용하는 클래스를 작성하는 경우 결과 인터페이스 내부의 현재 변수를 알아야 합니다. 현재 부분을 디버그하십시오.

거래 프로세서 자체를 디버그해야 하는 경우 - 다시 디버그해야 하며 이 클래스 내에서 - 입력 신호 생성기의 변수를 알 수 없어야 합니다.

이것이 캡슐화의 본질입니다. 각 특정 장소에서 우리는 필요한 것만 작업하고 다른 장소로 올라가지 않습니다.

 
Andrei :
우리는 낮은 수준에 대해 이야기하는 것이 아니라 모든 내부 변수에 대한 지식을 포함하여 가능한 모든 순간에 어디에 무엇이 흐르고 무엇으로 변하는지에 대한 논리에 대해 이야기하고 있습니다 ...이 모든 중복 논리를 이해하지 않고 사용의 의미는 작성자가 아닌 사람을 위한 이 코드는 완전히 사라집니다...

여보세요...

Metatrader가 작동하는 방식에 대해 많이 이해하고 계십니까? MT 변수 중 하나 이상을 알고 있습니까? 그러나 그것이 당신이 그것을 사용하는 것을 막지는 않습니다.

이것이 프로그램에서 수행해야 하는 방법입니다. 많은 블록이 있습니다. 사전 정의된 인터페이스를 사용하여 상호 작용하고 서로 위로 올라가지 않습니다.

 
George Merts :

트레이드 프로세서 인터페이스를 사용하는 클래스를 작성하는 경우 결과 인터페이스 내부의 현재 변수를 알아야 합니다. 현재 부분을 디버그하십시오.

거래 프로세서 자체를 디버그해야 하는 경우 - 다시 디버그해야 하며 이 클래스 내에서 - 입력 신호 생성기의 변수를 알 수 없어야 합니다.

이것이 캡슐화의 본질입니다. 각 특정 장소에서 우리는 필요한 것만 작업하고 다른 장소로 올라가지 않습니다.

최소한 하나 이상의 복잡한 계산 알고리즘을 작성한 적이 있다면 다른 장소에서 여러 번 처리해야 하고 프로그램의 다른 부분에서 값을 제어할 수 있어야 하는 변수가 항상 많다는 것을 알았을 것입니다 주어진 시간에 ... 외부 세계에서 개체의 전체 내부 내용을 캡슐화하는 방법을 이 상황에 추가하는 방법은 명확하지 않습니다 ....
 
George Merts :

여보세요...

Metatrader가 작동하는 방식에 대해 많이 이해하고 계십니까? MT 변수 중 하나 이상을 알고 있습니까? 그러나 그것이 당신이 그것을 사용하는 것을 막지는 않습니다.

이것이 프로그램에서 수행해야 하는 방법입니다. 많은 블록이 있습니다. 사전 정의된 인터페이스를 사용하여 상호 작용하고 서로 위로 올라가지 않습니다.

조심하십시오. 우리는 MT의 내부 변수에 대해 이야기하는 것이 아니라 디버깅하고 코드를 작성하는 동안 값을 읽을 가능성을 방지하기 위해 분리한 개체의 내부 변수에 대해 이야기하고 있습니다.
 
Andrei :
조심하십시오. 우리는 MT의 내부 변수에 대해 이야기하는 것이 아니라 디버깅하고 코드를 작성하는 동안 값을 읽을 가능성을 방지하기 위해 분리한 개체의 내부 변수에 대해 이야기하고 있습니다.

객체의 내부 변수가 다른 곳에서 필요하면 더 이상 객체의 내부 변수가 아니므로 이 객체를 구축하는 논리에 대해 생각할 필요가 있습니다(대부분 다시 한 번 더 작은 객체로 나눕니다). 최후의 수단으로 정말 필요하고 다른 방법이 없는 경우 인터페이스에서 공용 액세스가 가능한 Get 메서드를 만듭니다.

 
George Merts :
Andrey는 Peter 또는 Sansanych보다 훨씬 더 임상적입니다. 시간 낭비
 
Andrei :
최소한 하나 이상의 복잡한 계산 알고리즘을 작성한 적이 있다면 다른 장소에서 여러 번 처리해야 하고 프로그램의 다른 부분에서 값을 제어할 수 있어야 하는 변수가 항상 많다는 것을 알았을 것입니다 주어진 시간에 ... 외부 세계에서 개체의 전체 내부 내용을 캡슐화하는 방법을 이 상황에 추가하는 방법은 명확하지 않습니다 ....

이것은 불행히도 실제로 아무 것도 쓰지 않은 것은 당신이라고 말합니다 :-(

시스템의 그런 혼란!

 
Ihor Herasko :

내부 객체 변수가 다른 곳에서 필요하다면 더 이상 내부 객체 변수가 아닙니다. 최후의 수단으로 정말 필요하고 다른 방법이 없는 경우 인터페이스에서 공용 액세스가 가능한 Get 메서드를 만듭니다.

예 .. 양 고추 냉이는 더 달콤하지 않습니다 :) 아이디어는 최소한의 몸 움직임으로 디버깅 및 코드 작성을 용이하게하는 적절한 프로그래밍 언어이지만 여기서는 완전히 반대 상황이 있습니다 ...

 
Maxim Kuznetsov :

이것은 불행히도 실제로 아무 것도 쓰지 않은 것은 당신이라고 말합니다 :-(

시스템의 그런 혼란!

감정과 반성이 덜하고 토론의 본질에 대한 세부 사항이 더 많았다면 가격이 없었을 것입니다. :)
 
Andrei :
최소한 하나 이상의 복잡한 계산 알고리즘을 작성한 적이 있다면 다른 장소에서 여러 번 처리해야 하고 프로그램의 다른 부분에서 값을 제어할 수 있어야 하는 변수가 항상 많다는 것을 알았을 것입니다 주어진 시간에 ... 외부 세계에서 개체의 전체 내부 내용을 캡슐화하는 방법을 이 상황에 추가하는 방법은 명확하지 않습니다 ....

안녕하세요.

한 블록에 다른 블록의 데이터가 필요한 경우 그러한 기회를 제공하는 해당 가상 인터페이스가 선언됩니다. 여기 위의 거래 프로세서 기능이 있습니다. 이는 프로그램의 다른 부분, 진입 생성기, 후행 및 종료 컨트롤러, 거래 중지 컨트롤러에서 필요합니다. 이러한 각 프로그램 블록은 전문가의 개체를 참조하고 거래 프로세서의 인터페이스를 가져올 수 있습니다. 동시에 사전 정의된 인터페이스를 통해서만 아무도 이 프로세서에 직접 액세스할 수 없습니다.

유사하게, 다른 장소에서 - 일부 데이터가 필요한 경우 - 이 블록은 적절한 인터페이스를 제공해야 합니다.

결론은 프로그램의 모든 지점은 필요한 변수에만 액세스할 수 있고 다른 변수에는 액세스할 수 없다는 것입니다.