問題タブ [template-method-pattern]

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 投票する
3 に答える
182 参照

oop - OOP - 「デフォルト」の悪いクラス名?

パターンのテンプレートメソッドタイプを実装しており、動作を実装するためのクラスがいくつかあります。

例として、私の構造は次のとおりです。

「デフォルト」クラスは、カスタム タイプが必要ない場合の動作を保持します。私の質問は、「デフォルト」はクラスの悪い名前ですか?

私がこの質問をしているので、私はすでに名前についていくつかの深刻な疑問を持っていると思いますが、型の中でデフォルトの動作を提供するクラスを他に何と呼びますか?

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

java - スーパークラス - 抽象クラスの具象メソッド

抽象クラス Shape、いくつかのサブクラス、および面積、周囲を計算し、オーバーライドされる形状を描画するためのいくつかのメソッドがあります。このアプリケーションの抽象クラスでテンプレート メソッドを見つけようとしていますが、何も思いつきません。すべての形状で同一で、GUI でも何かを生成する一般的な方法は見つかりませんでした。2つの形状の面積を比較するメソッドを抽象クラスに持つことを考えましたが、これを使用できないと思うので(クラスのインスタンスを参照して)、その方法を理解できません抽象クラス。すべての形状に共通するものはありますか?また、テンプレートの方法は何でしょうか? ありがとうございました。

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

c++ - コンストラクターでテンプレート メソッド パターンを使用することは可能ですか?

重複の可能性:
コンストラクター内での仮想関数の呼び出し

クラス Shape とそのサブクラス Sphere があります。

では、 Shape コンストラクターでサブクラスのものをどのように処理できますか? テンプレート メソッド パターンに頼ることもでき ますが、コンストラクターで純粋仮想関数を呼び出さなければなりません。私は試しましたが、コンパイラはそれを好きではありませんでした

編集

コンストラクターを新しいメソッド「init」に移動することにしました。仮想メソッドは「subInit」になります。

基本的にはテンプレートメソッドのパターンです

クライアントは次のように書き込みます。

それから私は私の答えを持っています:少なくともC ++では、コンストラクターでこのパターンを適用することは不可能です

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

java - テンプレート メソッド パターン - 命名規則

RenderableEntityという名前のこの抽象クラスがあります。

render()抽象保護されたメソッドにいくつかのロジックがラップされたパブリック メソッドがありrender()ます。render()この抽象メソッドに名前を付けるにはどうすればよいですか。ある種の慣習はありますか。doRender()makeRender()保護されたメソッドの場合render()?

編集:このスニペットがコンパイルされないことはわかっています。同じ名前と同じパラメーターを持つメソッドを持つことはできないため、この抽象メソッドに名前を付ける方法を考えていました。

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

javascript - JS テンプレート メソッド パターンの this の意味

マークされた行が見つからないのはなぜprotectedACMemberですか?

プライベート、保護、およびパブリック メンバーをシミュレートするための適切なパターンはありますか? 静的/非静的も?

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

java - 静的クラスのテンプレート メソッド パターン

いくつかの作業を実行する util クラスがあります。明らかに、拡張のために閉じられており、すべてのメソッドは静的です。簡単にするために、クラスは次のようになります。

クラスにdoWorkは、多くの計算を実行するメソッドがあります。ところで、メソッドはヘルパー メソッドhelpを呼び出して何らかの結果を取得し、残りのコードはhelpメソッドによって返された結果を使用します。

ここで、クライアント コードで method の機能を再利用したいのですdoWorkが、呼び出す代わりにmethodhelpを呼び出したいと思いますhelp2。最も簡単な解決策doWork2は、に置き換えhelpてメソッドを作成するだけhelp2です。

doWorkのすべての変更はいずれかで複製する必要があるため、これは非常に悪いアプローチdoWork2です。これはパターンに非常に似てTemplate Methodいますが、ここには拡張機能がないため、適用できません。

このメソッドにパラメーターを追加するために思いついた最善の解決策ですが、既存のすべてのユーザーを保持しますdoWork

この問題を解決するために適用できるより良い設計ソリューションは何ですか? 持っているような柔軟性を実現する方法はありTemplate Patternますが、util クラスへの適用にはありますか。

前もって感謝します。

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

c# - ファクトリ メソッド パターンと抽象ファクトリ パターン

多くの方法で説明されている質問がありますが、まだ明確になっていません。

  1. 抽象ファクトリパターンにおける「オブジェクト合成」によるオブジェクトの作成とは?

どちらのパターンも継承を使用してオブジェクトを作成しているようです。

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

java - json から Java オブジェクトへの一般的な解析

私はいくつかのJavaクラスを持っておりMyClass1MyClass2その状態はjsonオブジェクトに保存されています:

ここで、for help を使用して Json オブジェクトを Java オブジェクトに解析する汎用メソッドを作成したいと思いnet.sf.jsonます。

MyClass1 から始めましょう - List<MyClass1>json で記述された 2 つのオブジェクトを含む を作成したいと思います。

私の最初の質問は - 5行目は有効ですか? 私の 2 番目の質問は 8 行目です。ある時点で type のオブジェクトを作成したいのですTが、それは可能ですか?

助けてくれてありがとう!

編集:多分これは私が探しているものです。編集についてもコメントしていただければ幸いです。

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

c# - 継承なしのテンプレート メソッド パターン

具象クラスが基本クラスから継承されず、パターンの全体的な機能が維持されるように、テンプレート メソッド パターンのバリアントを実装するにはどうすればよいでしょうか。継承できない理由は、別のクラスから継承する必要があり、多重継承が利用できないためです。

たとえば、次の Tempate メソッド パターンがあるとします。

ConcreteClass が BaseClass を継承せずに同じ結果を得るにはどうすればよいですか?