ファクトリとエンティティ

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

ファクトリ メソッド パターンは、ファクトリの概念を実装するオブジェクト指向の作成設計パターンです。オブジェクトは、特定のクラスを基にせずに作成できます。このパターンの中核となるのは、オブジェクトを作成するためのインターフェイスを定義することですが、インスタンス化するクラスをインターフェイスを実装するクラスに決定させます。Factoryメソッドを使用すると、クラスはインスタンス化をサブクラスに委ねることができます。

使用するエンティティファクトリを設定するには、タイプを設定します。デフォルトでは、Sitecore FactoryはConnectを通じて暗黙的に使用されます。

<!-- ENTITY FACTORY Creates an entity by entity name. Allows to substitute default entity 
with extended one. -->
<entityFactory type="Sitecore.Commerce.Entities.EntityFactory, Sitecore.Commerce.Connect.Core" 
singleInstance="true" />

Sitecore.Commerce.Carts.configファイルでカスタムオブジェクトを設定するには:

<!--  Connect ENTITIES Contains all the Connect entities. The configuration can be used to 
substitute the default entity implementation with extended one. -->
<commerce.Entities>
    <CartBase type="Sitecore.Commerce.Entities.Carts.CartBase, Sitecore.Commerce.Connect.Core" />
    <Cart type="Sitecore.Commerce.Entities.Carts.Cart, Sitecore.Commerce.Connect.Core" />
</commerce.Entities>

実際のConnectプロバイダの実装では、カスタムオブジェクトは既知であり、必ずしもFactoryを使用して作成する必要はありません。

ファクトリへの参照は、次のような一部のプロセッサでパラメータとして使用できますCreateCart

<processor type="Sitecore.Commerce.Pipelines.Carts.CreateCart.CreateCart, Sitecore.Commerce.Connect.Core">
    <param ref="entityFactory" />
</processor>

必要な型のインスタンスを取得するには、Factory.Createメソッドを使用する必要があります。たとえば、次のコード スニペットでは、カートが必要であり、カートを作成して返すために工場を呼び出します。カートドメインモデルは、デフォルトのカートタイプを独自の実装に置き換えることができるように、完全に変更およびカスタマイズできます。

public override void Process(ServicePipelineArgs args)
{
  var result = (CartResult)args.Result;
  var cart = this.entityFactory.Create<Cart>("Cart");
  var request = (CreateOrResumeCartRequest)args.Request;
  cart.UserId = request.UserId;
  cart.ShopName = request.ShopName;
  cart.CartName = request.CartName;
  cart.CustomerId = request.CustomerId;
  cart.CartStatus = CartStatus.InProcess;
  result.Cart = cart;
}
この記事を改善するための提案がある場合は、 お知らせください!