問題タブ [builder-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 投票する
1 に答える
686 参照

groovy - リアクティブプログラミングによるビルダーパターン

リアクティブ プログラミング (RxGroovy) を使用して、プロパティ値がデータベース クエリから取得されるビルダー パターンを使用してオブジェクトを作成しようとしています。まず、どうやってそれを行うか、そして次に、それが良いアイデアかどうかについての考えを探しています。

作成しようとしているオブジェクトは次のタイプです。

そしてビルダー:

すべての Foo オブジェクトの名前を返すクエリと、関連するすべての ID を取得するために Foo オブジェクトごとに 1 回実行する別のクエリの 2 つのクエリがあります。

queryAsObservableクエリを実行し、結果セットの各行を発行する Observable を取得するためのメソッド (それを呼び出す) が既にあります。を設定すると、次のnameようになります。

を指定するFooBuilderと、次のように relatedIds を設定できます。

私の問題は、2つを結び付ける方法ですか?FooBuilder示されているように、最初のオブザーバブルによって発行されたそれぞれについて、関連する ID を設定するためにオブザーバブルを作成するにはどうすればよいですか? 最後に、すべてのFooBuilderオブジェクトを取得し、 プロパティnamerelatedIdsプロパティをすべて設定する必要があります。

JOINに関する注意

JOIN を使用して、関連する ID と名前をすべて 1 つのクエリで取得できることを知っています。私の考えでは、すべての結果が到着するのを待ってからオブジェクトを順番に構築するのではなく、並行して実行される多くの小さなクエリを使用し、Observable ストリームを使用して結果が利用可能になるたびに各結果の作業を行うことができます。なぜそれが良いアイデアなのか悪いアイデアなのかについて、私は自由に考えています。

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

java - DTO でビルダー パターンを使用する必要がありますか?

これはかなり主観的な質問かもしれませんが、もう少し意見を知りたいです。Spring MVC を使用して Rest API サービスを構築し、DTO-Domain-Entity パターンを実装しました。Builder パターンを DTO に実装することについてどう思うか知りたいです。

定義によると:

Builder 設計パターンの意図は、複雑なオブジェクトの構築をその表現から分離することです。そうすることで、同じ構築プロセスで異なる表現を作成できます。

私の DTO ケースのほとんど (すべてとは言いません) では、このケースのように、構築するより複雑なオブジェクトはありません。そして、正直なところ、DTO について話している場合、複雑なオブジェクトを構築する例は思い浮かびません。

不変オブジェクトを使いやすくし、コードを明確にするのに役立つパターンの 1 つに Builder パターンがあります。

Builder パターンは、オブジェクトの不変性を提供します。次に、DTOはサービス応答自体であり、これは応答であるため変更すべきではないと考えることができます(少なくともそれが私が考えている方法です)


それで、あなたはどう思いますか?このパターンを DTO に使用する必要がありますか (このケース、およびおそらくそれらのほとんどが複合オブジェクトの原則を満たしていないという事実を考えると)。

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

oop - 乗車券の運賃計算に使えるデザインパターンは?

鉄道の発券に似たソリューションを開発しています。

コンテキスト: タミル ナードゥ州の 18 の鉄道駅が表示されます。乗客はチケットが必要です。5駅までの運賃はRs.10です。5駅以降は5駅ごとに5Rsの追加料金がかかります。全行程、つまり始発駅から終着駅までの運賃は Rs です。20.

例えば

将来的には、料金計算に関するビジネス ルールがさらに追加される可能性があります。

問題は、運賃計算においてどの設計パターンが正しい選択であるかということです。

0 投票する
4 に答える
7929 参照

java - セッターメソッドで役立つビルダーパターン?

だから私はHybris、Springなどを使ったウェブプロジェクトを持っています。

自動生成されるいくつかのクラスがあります。フィールドを設定するために、自動生成され、別のクラスからいくつかのメソッドを継承する1つのモデルクラスがあるとしましょう。

単体テストを作成する場合、Builder パターンを使い始めると便利ですか? というのも、私は Employee(int id, String name) などのコンストラクターを持っていないため、それらを設定するための継承されたメソッド (setId(int id) など) しか持っていません。

たとえば、このモデルの Builder クラスを作成する場合、メソッド .withId(int id) および .withName(String name) と、setter メソッドを実行する build() メソッドを用意します。

したがって、最終的に私のテストクラスでは次のようになります。

しかし、私はすでにセッターメソッドを持っているので、私は通常持っています:

では、この場合、努力する価値は本当にあるのでしょうか? それとも、私が本当に理解していないことがありますか?

ありがとう!

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

java - Builder パターンの複数の可変引数

Joshua Bloch の 'Effective Java' を読んでいます。項目 2 では、コンストラクターで複数のパラメーターを処理するときに Builder パターンを使用する利点について言及しています。従来のコンストラクターとこのパターンの間の複数の var-args の違いを見るまでは、すべて問題ありません。だから、私はそれに関していくつかの疑問があります:

  1. ビルダーパターンはどのように複数の var-args を許可しますか?
  2. 従来のコンストラクターで var-arg が 1 つしか許可されないのはなぜですか? (おそらく、両方の定義されたデータ型が同じ場合、複数の var-args がある場合にあいまいさが生じるという事実によるものですが、これがその背後にある正しい理由であるかどうかはわかりません。)

ただし、コードで var-args を使用したことはありませんが、その使用法は知っています。それでも、上記のステートメントの背後にある理由を理解できません。どんな助けでも大歓迎です。

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

javascript - プライベート変数を使用した Javascript ビルダー パターン

fullName他のすべてのプロパティのマッシュアップを返す1 つのパブリック アクセサー () を提供しながら、プライベート変数を使用する Javascript でビルダー パターンを作成しようとしています。この質問と回答は、プライベート変数にアクセスするために person コンストラクター内で使用できることを示唆していObject.definePropertyますが、機能しません - instance.fullNameis always undefined.

ビルダー パターン変数が非公開のままであるが、パブリック アクセサーがビルド チェーン全体でそれらにアクセスできるようにするにはどうすればよいでしょうか?

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

java - ビルダー パターンの実装中にモックできない

logic でビルダー パターン (BuilderClass) を使用するクラス (TestClass) をテストするのに苦労しています。ビルダー クラス (BuilderClass) をモックできません。以下は私のロジックの簡略版です。

そして、これが私のビルダークラスです

私のテストクラスでは、Mockito と Dataprovider を使用しています。

何か見逃したら助けてください。ありがとう }