MQL5におけるOOPに関する質問 - ページ 56

 
Aleksey Mavrin:

もう何度もバカで何もわかってないと言われ、冷静さを誇っているようで、ろくにファックを送ってないんですよね)

基本的に - ネストされたクラスは、プライベートフィールドのパブリックメソッドをオプションにする、それはあなたが書いているカプセル化違反です。他に反論は?

順調にバカを発揮してるんだから、むしろ自業自得で送りたいくらいだ。

ネストしたクラスは、書いたとおりに動いてはくれません。そして、Guardianパターンのタスクは、ネストしたクラスや不要なパブリックメソッドなしで解決できるのです。

ここで、ネストされたクラスとパブリックメソッドを持つ例を思い出してください。

 
Dmitry Fedoseev:

順調にバカを発揮してるんだから、むしろ自業自得で送りたいくらいだ。

ネストされたクラスは、あなたが書いたとおりに動いてはくれません。そして、Guardianパターンの問題は、ネストしたクラスや不要なパブリックメソッドなしで解決できる。

最後に誰が行くのか考えよう))

ネストされたクラスは何をしないのか?

privateなフィールドに対してpublicなメソッドが作られるため、カプセル化が崩れる」と書きましたね。

ネストされたクラスは、パブリックメソッドを作成することなく、プライベートフィールドにアクセスすることができます。

s.s. ランキングを見る限りでは、ここの常連さんなんですね。しかし、コミュニケーションと対話の方法を学ばなければなりません。しかし、あなたの人生にはそんなものは必要ない。

 
Aleksey Mavrin:

最終的に誰が行くかは、自分で考えよう)

ネストされたクラスは何をしないのですか?

privateなフィールドに対してpublicなメソッドが作られるため、カプセル化が崩れる」と書きましたね。

ネストされたクラスは、パブリックメソッドを作成することなく、プライベートフィールドにアクセスすることができます。

s.s. ランキングを見る限りでは、ここの常連さんなんですね。しかし、コミュニケーションや対話の方法を学ばなければなりません。しかし、人生には必要ない。

ここで思い出してほしいのは、ネストされたクラスとパブリックメソッドを持つ例です(つまり、ネストされたクラスは、パブリックメソッドを作る必要性を取り除くのにまったく役立っていません)。

ネストされたクラスは、あくまでクラスの可視性の問題であって、オブジェクトの可視性ではない。ネストされたクラスは、単に、このクラスのオブジェクトを、それが記述されているクラスの外側に作成することを許さない。ですから、行っていただくことになります。

 
Aleksey Mavrin:

その通り、正しい構造です。そのためには、この構造のすべての可能なバリエーションを検討し、与えられたタスクにおける長所と短所を分析し(拡張性や保守性などの要件を考慮し)、最適なものを選択する価値がある。

そして、悪名高いパターンそのものは(正確にはどうであれ)、ここの構造の変形でもなく、脳の基準点に過ぎないのです。パターンXの問題の記述に当てはまる問題なら、パターンXを適用すれば解決できることになる」という感じですが、それ以外の方法でも山ほど解決できます。

そして、一般に、この27の基本パターンは、プログラマが典型的な問題をOOPの原則に従って解決するためのヒントのようなものとして生まれたものである。ドミトリーが構造で持っているような、原理原則に従うタスクがなければ、パターンは必要ないのです。

ありがとうございます、良い記事です

あなたは他のパネルと違うのです ;)

 
Dmitry Fedoseev:

ここで思い出してほしいのは、ネストされたクラスとパブリックメソッドを持つ例です(つまり、ネストされたクラスは、パブリックメソッドを作る必要性を取り除くのに全く役立っていない)。

ネストされたクラスは、単にクラスの可視性の問題であって、オブジェクトの可視性の問題ではありません。 ネストされたクラスは、 単に このクラスのオブジェクトを、それが記述されているクラスの外側に作成することを許さない。 だから、行くしかないんです。

No )) 愚かなこと ))ネストされたクラスは、ネストされたクラスのすべてのPRIVATEフィールドにアクセスすることができます。(知らないのか?まあ、話すことはないんだけどね。

しかも、Shotのためにオブジェクトを丸ごとコピーしなければならないと書いたナンセンスさはカウントされていない...))それがわかったのは.はよ帰ってきてくれや)

 
Igor Makanu:

ありがとうございます、良い記事です。

他の議論とは違うんですね ;)

イゴール、あなたもありがとう、そして優しい言葉で)、建設的な相互の議論のための興味深いトピックを作成すること;)

 
Aleksey Mavrin:

いいえ)) ナンセンスです))ネストされたクラスは、ネストされたクラスのすべてのPRIVATEフィールドにアクセスすることができます。(知らないのなら、話すことはない。

しかも、Shotのためにオブジェクトを丸ごとコピーしなければならないと書いたナンセンスさはカウントされていない...))それがわかったのは.はよ帰ってきてくれや)

また、ネストされたクラスは何と呼ぶのでしょうか?

ここでは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:
あ)

あなたも知らなかったの?