私が働いているビジネスはオンライン小売業者で、現在、特に製品の顧客価格を計算するプロジェクトに取り組んでいます。おそらく次のようなサービスを作成します...
public interface IPriceService
{
decimal CalculateCustomerPrice(ISupplierPriceProvider product);
}
public interface ISupplierPriceProvider
{
decimal SupplierPrice { get; }
string Currency { get; }
}
まったく同じように見えなくても心配はいりませんが、一般的な考え方は理解できます。このサービスの実装では、この価格を計算するためのいくつかのルールが存在します。これらのルールは頻繁に変更される可能性があり、将来的には、これらのルールに対してある種の DSL を作成する必要があるでしょう。現時点では、営業部門などから実際にどのような変更が要求されるかはよくわからないので、DLR をホストし、多くの価格計算を含む Iron Python または Iron Ruby スクリプト ファイルを用意することを考えています. このようにして、価格計算ルールを迅速に更新し、ビジネスの人々が必要とする DSL の種類を把握することもできます。