問題タブ [information-hiding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1354 参照

c++ - 抽象クラスの C++ ファクトリ メソッド パターン

C++ でファクトリ メソッド パターンを実装する必要があります。ファクトリによって「アセンブル」されるクラス (C) は抽象クラスであり、他のクラス (D) によって継承されます。だから私はCにコンストラクターを持たせたくありません。ただし、D のインスタンスを作成するには、C に少なくとも保護されたコンストラクターが必要です。しかし、誰かが C から派生し、この方法で C のインスタンスを作成する可能性があります。私はこれが起こることを望んでいません。そこで、派生クラスが使用する C オブジェクトへのポインターを受け取る保護されたコンストラクターを作成しました。コードは以下のとおりです。問題は、それがこの問題に対処する正しい方法であるかどうかです。

0 投票する
1 に答える
491 参照

javascript - プロトタイプオブジェクトを使用するときに非表示になる情報

私たちのコードベースでは、多くの開発者がメンバー変数の最初の文字としてアンダースコアを使用して、一般の使用を思いとどまらせていることがわかりました。通常は、オブジェクトのメソッドにアクセスできるローカル変数を宣言することをお勧めしますが、この場合、すべてのメソッドがプロトタイプで定義されているため、これは不可能と思われます。これが例です。

プロトタイプオブジェクトを使用する理由は複数ありますが、最も説得力のあるのは、プロトタイプチェーンを使用すると、メソッドの継承とオーバーライドが容易になることです。1つのプラットフォームに複数の製品があり、特定の機能をオーバーライドしながら多くのJavaScriptを再利用したい場合があるため、これは私たちにとって良いことです。

だから私の質問は、プライベートでなければならない変数をパブリックにアクセスできるようにすることなく、プロトタイプチェーンのすべての利点をどのように得ることができるかということです。

0 投票する
1 に答える
107 参照

css - 検索エンジンは :target で表示されるコンテンツをどのように扱いますか?

多くのコンテンツを含むページの場合、私は最近 css :target を使用して目的のコンテンツのみを表示するのが好きになりました。コードは次のようになります。

私の質問は 2 つあります。

  1. 現代のクモはアンカー リンクをたどりますか?
  2. そうでない場合、最後の h2 とその次の兄弟だけがスパイダーされますか?
0 投票する
5 に答える
20569 参照

oop - 情報隠蔽とデータ抽象化の違いは?

データの抽象化と情報の隠蔽に違いはありますか?このリンクのすべての答えを調べた後、私はもっと混乱しています。 抽象化VS情報隠蔽VSカプセル化 違いは見つかりませんでした。一方(情報の非表示)を目標と呼び、もう一方(抽象化)をプロセスと呼ぶことができるというだけですか?しかし、これは私にとって満足のいく違いではありません。さらに、カプセル化は抽象化のプロセスを実装するための手法であることがわかりました。私はここにいますか?正確な違いを説明してください。

0 投票する
2 に答える
1093 参照

java - OOD - 一度値を設定して変更できないようにする

情報隠蔽の原理を理解しようとしています。getSpeed、setSpeed、getEngine、setEngine、getVIN、setVIN などのメソッドを持つ車両クラスがあるとします。車両には VIN が 1 つしかないため、情報の非表示を強制するために、クライアント クラスに setVIN の機能を与えたくありません。 (私は間違っているかもしれません)。このクラスに情報の非表示を適用する方法について、私はちょっと混乱しています。setVIN を非公開にしたくありません。しかし、一度 VIN を設定し、その後再度設定できないようにするにはどうすればよいでしょうか。それとも、そのようにする必要がありますか?

0 投票する
2 に答える
580 参照

c++ - テンプレート クラスで使用される #include をクラスのユーザーから非表示にする

3 つのファイルにまたがる次のコードを考えてみましょう。

したがって、私の問題は、明示的に使用しない限り、 SecretをFoo のユーザーから隠したいということです。通常、これはinを含めることによって行われます。ただし、Fooはテンプレート クラスであり、その定義を宣言から分離できないため、これは不可能です。明示的なテンプレートのインスタンス化はオプションではありません。#include "secret.h"secret.hfoo.cpp

最終的に、明示的なテンプレートのインスタンス化以外の方法でこれが可能かどうかを知りたいです。ありがとう!

0 投票する
3 に答える
1286 参照

c++ - C++ フレンド関数/クラスの使用?

C ++でのフレンド関数/クラスの実際の使用法は何ですか? friend正しいアプローチだけが正しい例を挙げていただけますか?

ありがとう

0 投票する
2 に答える
251 参照

c++ - クラスT以外のすべての人からデータムを非表示にする方法

非表示のデータをタイプTのオブジェクトに生成するが、データを他のすべてのオブジェクトから非表示にするタイプAが必要です。私のC++コンパイラはたまたまGCC4.4ですが、それは問題ではありません。なぜこれが機能しないのですか?

ちなみに、これはデータムを非表示にできないことを除いて、正常に機能します。

C ++では、コンパイル時にテンプレートパラメータとしてフレンドクラスを指定することは本当に許可されていませんか?なぜだめですか?そうでない場合は、データムを非表示にするためにどのような代替手法を使用する必要がありますか?(可能であれば、コンパイル時の手法をお勧めします。)

ここでの私の誤解は何ですか?

(ここここに関連する質問への回答がいくつかありますが、それらが私の特定の質問に答えていないか、答えていることを理解できていません。とにかく、私はまったく間違ったテクニックを使用している可能性があります。友達のクラスTが失敗する理由、私が本当に知りたいのは、友達と一緒であろうと他の手段であろうと、データを非表示にする方法です。)

ありがとう。

0 投票する
6 に答える
32167 参照

java - サブクラスはスーパークラスからプライベートインスタンス変数を継承しますか

サブクラスはプライベートフィールドを継承しますか?

この質問は同じ問題に対処しますが、それが以下の(一見)矛盾する状況をどのように満たすのかよくわかりません。

http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

「サブクラスはその親クラスのプライベートメンバーを継承しません」と言います。

これは、プライベートインスタンス変数もプライベートメソッドも継承しないことを意味しますか?

ただし、親からパブリックアクセサーメソッドを継承する場合、これはどのように機能しますか?存在を知らないインスタンス変数を返しますか?

また、私のコンピュータサイエンスの本(BaronのAP Computer Science A)には、「(サブクラス)は(スーパークラス)からすべてのプライベートインスタンス変数とパブリックアクセサメソッドを継承する」という質問に対する正解があります。

これは、オラクルのチュートリアルを縮小したものではありませんか?

ご協力いただきありがとうございます

0 投票する
2 に答える
450 参照

javascript - Handlebars.js テンプレートでプライベート配列データを取得する

この単純な JavaScript 構成を考えると、次のようになります。

ハンドルバー テンプレート内で、関数を使用しnameて特定のインデックスでオブジェクトのプロパティを出力できるようにしたいと考えています。privateArrayreturnPrivate

私は handlebars.js を使い始めたばかりなので、これを行う標準的な方法が既にあるかもしれません。または、これはテンプレートにあまりにも多くのロジックを構築しようとしていて、ハンドルバーのすべてに反している可能性があります.