私は上流から来る2種類のペイロードを持っています:それはPayloadA
またはPayloadB
です。1つのBuilderクラスに複数のBuilderパターンを入れる方法は?
PayloadA
containesこれらの多くの分野:
createTimestamp
sentTimestamp
schemaId
eventId
producerId
guid
deviceId
langId
sessionId
PayloadB
containesこれらの多くの分野:
createTimestamp
sentTimestamp
schemaId
eventId
producerId
eventType
payloadVersion
creationDate
expirationSeconds
payload
だから、最初の5つのフィールドは、それらの間で共通しています。一般的には、より多くのフィールドがあります。
スレッドセーフなビルダーパターンを作成します。だから、両方のペイロードのすべてのフィールドを結合したPayload
ビルダーパターンクラスを1つ用意する必要がありますか?あるいは、PayloadA
とPayloadB
のビルダーパターンクラスを別のPayload
ビルダークラスに入れて、PayloadA
とPayloadB
の共通フィールドはPayload
クラスの一部になりますか?
この種の問題のビルダーパターンを作成する最良の方法は何ですか。 PayloadA
ビルダーパターンdeviceId
が必須フィールドであるとします。 PayloadB
ビルダーパターンeventType
は必須フィールドです。
共通属性をペイロードのような異なるクラスに移動します。 payloadAとpayloadBにペイロードクラスの構成を使用します。次をご覧ください:http://stackoverflow.com/documentation/design-patterns/1811/builder-pattern/17177/builder-pattern-in-java-with-composition –
@Ravindrababuどのように見えるかの例を挙げてください好き?それは私がより良く理解するのに役立ちます。 – john