OOPと手続き型プログラミングの比較 - ページ 34

 
Andrei:

そこがポイントなのですが、もし全てを分離してしまうと、そのようなコードを扱うのは何倍も難しくなりますし、言うまでもなく、必要な全ての変数の現在値を知る必要があるときに、適切にコードをデバッグすることは不可能になります...。

トレードプロセッサーのインターフェースを使用するクラスを作成する場合、このインターフェース内の現在の変数を知ってはいけません。 REMOTE部分のデバッグを行います。

トレードプロセッサー自体をデバッグする必要がある場合は、やはりデバッグする必要があり、このクラスの内部では、例えば入力信号発生器からの変数を知ってはいけません。

それがカプセル化の本質で、それぞれの場所で必要なものだけを使って作業し、他の場所には干渉しない。

 
Andrei:
低レベルの話ではなく、そこに流れているものが、内部の変数をすべて把握した上で、あらゆる瞬間にどう変化していくのか、というロジックで......。この冗長なロジックをすべて理解しないと、このコードを非著作者に使う意味がまったくなくなってしまう......。

こんにちは...

メタトレーダーの仕組みはよくわかりますか?MTの変数をご存じですか?しかし、だからといって使うのを止めることはできません。

これは、プログラム内部で行うべきことです。ブロックはいくつもあり、それらはあらかじめ定義されたインターフェースを使って相互作用し、互いに干渉することはない。

 
George Merts:

トレードプロセッサーのインターフェースを使用するクラスを作成する場合、このインターフェース内の現在の変数を知ってはいけません。 REMOTE部分をデバッグします。

トレードプロセッサー自体をデバッグする必要がある場合は、やはりデバッグすべきですし、このクラスの内部で、例えば入力信号発生器からの変数を知ってはいけません。

それがカプセル化の本質であり、それぞれの場所で必要なものだけを扱い、他の場所には干渉しないようにするのです。

少し複雑な計算アルゴリズムを書いたことがある人なら、常にたくさんの変数があり、それらは異なる場所で何度も処理され、プログラムの異なる部分でいつでもその値を制御できる必要があることに気づいたはずです...。この状況に、どうやってオブジェクトの内部内容をすべて外界からカプセル化することを加えられるのか、不明ですが......。
 
George Merts:

こんにちは...

メタトレーダーの仕組みはよくわかりますか?MTの変数をご存じですか?しかし、だからといって使うのを止めることはできません。

プログラムの中でそうしてください。いくつかのブロックがあり、それらはあらかじめ定義されたインターフェイスを使って相互作用し、互いに干渉することはない。

内部MT変数の話ではなく、分離した内部オブジェクト変数の話なので、デバッグやコード作成中にその値を読み取る可能性を防いでください...。
 
Andrei:
内部MT変数の話ではなく、分離した内部オブジェクト変数の話なので、デバッグやコード作成中にその値を読み取る可能性を防いでください...。

内部オブジェクトの変数が他の場所で必要になった場合、それはもはや内部オブジェクトの変数ではなく、そのオブジェクトを構築するロジックを考える必要があります(ほとんどの場合、再び小さなオブジェクトに分割することになります)。最後の手段として、本当に必要で他に方法がない場合は、インターフェースにパブリックアクセスのGet-methodが行われます。

 
George Merts:
アンドレイは、ピーターやサンサニッチよりもさらに臨床的だ。
 
Andrei:
ちょっと複雑な計算アルゴリズムを書いたことがある人なら、いつもたくさんの変数があって、それをいろいろなところで何度も扱って、プログラムのいろいろなところでいつでもその値を制御できるようにしなければならない...ということを見たことがあるはずです。この状況に、どうやってオブジェクトの内部内容をすべて外界からカプセル化することを加えられるのか、不明ですが......。

ということは、残念ながら、ほとんど何も書いていないあなただったということです :-)

このようなシステム上の混乱があるのです !

 
Ihor Herasko:

内部オブジェクト変数が他の場所で必要とされた場合、それらはもはや内部オブジェクト変数ではありません。最後の手段として、本当に必要で他に方法がない場合は、一般にアクセス可能なGet-methodがインターフェースで行われます。

そうですね...一体何が入っているのか、気になって仕方ないですよね :)適切なプログラミング言語があり、最小限のジェスチャーでデバッグやコード作成を容易にすることです。ここでは、まったく逆の状況になっています......。

 
Maxim Kuznetsov:

ということは、残念ながら、ほとんど何も書いていないあなただったということです :-)

このようなシステムの混乱があるのです。

感情的にならず、反省して具体的に議論してくれれば、あなたの存在価値はないのですが。:)
 
Andrei:
少し複雑な計算アルゴリズムを書いたことがある人なら、いつも多くの変数があり、それを別の場所で何度も処理しなければならず、プログラムの別の場所でいつでもその値を制御できなければならないことに気がついたはずだ...。この状況に、どうやってオブジェクトの内部内容をすべて外界からカプセル化することを加えられるのか、不明ですが......。

こんにちは。

あるブロックが他のブロックからのデータを必要とする場合、この機能を提供するために適切な仮想インターフェースが宣言されます。ここでは、上記の、貿易プロセッサの機能 - ストップトレードのコントローラで、末尾と出口のコントローラで、入力の発電機で、プログラムのさまざまな部分で必要とされる。これらのプログラムブロックのそれぞれは、Expert Advisorオブジェクトを参照し、取引プロセッサのインターフェイスを取得することができます。同時に、誰もこのプロセッサに直接アクセスすることはできず、あらかじめ定義されたインターフェースを介してのみアクセスすることができます。

他の場所でも同じです。何らかのデータが必要な場合、このブロックは適切なインターフェイスを提供しなければなりません。

ポイントは、プログラム中のどのポイントも、必要な変数にのみアクセスでき、他の変数にはアクセスできないことです。