工厂模式 - 带有可选参数
Factory Pattern - with optional parameters
我有一个工厂:
public static class AdapterFactory
{
public static IAdapter GetAdapter(AdapterType claimType, int mid, int tid, int siteId, string version)
{
}
}
我的问题是,有时构建 "Adapter" 不需要 mid、tid、siteId 和 version 参数,它们仅特定于某些类型的适配器。
在这种情况下并不总是需要参数时,最好的方法是什么?
感谢您的帮助。
看看optional arguments。你可以给参数默认值,然后如果你不需要它们就省略它们
public static class AdapterFactory
{
public static IAdapter GetAdapter(AdapterType claimType,
int mid = 0,
int tid = 0,
int siteID = 0,
string version = null)
{
// Create adapter here
}
}
现在可以这样使用:
var adapter1 = AdapterFactory.GetAdapter(AdapterType.Regular, 1000, 50, 10, "1.0.0.0");
var adapter2 = AdapterFactory.GetAdapter(AdapterType.Minimal);
专业化和制造更多的工厂,例如:
public static class MidAdapterFactory
{
public static IAdapter GetAdapter(AdapterType claimType, int mid)
{
}
}
public static class TidAdapterFactory
{
public static IAdapter GetAdapter(AdapterType claimType, int tid)
{
}
}
还要考虑构建器模式。
我有一个工厂:
public static class AdapterFactory
{
public static IAdapter GetAdapter(AdapterType claimType, int mid, int tid, int siteId, string version)
{
}
}
我的问题是,有时构建 "Adapter" 不需要 mid、tid、siteId 和 version 参数,它们仅特定于某些类型的适配器。
在这种情况下并不总是需要参数时,最好的方法是什么?
感谢您的帮助。
看看optional arguments。你可以给参数默认值,然后如果你不需要它们就省略它们
public static class AdapterFactory
{
public static IAdapter GetAdapter(AdapterType claimType,
int mid = 0,
int tid = 0,
int siteID = 0,
string version = null)
{
// Create adapter here
}
}
现在可以这样使用:
var adapter1 = AdapterFactory.GetAdapter(AdapterType.Regular, 1000, 50, 10, "1.0.0.0");
var adapter2 = AdapterFactory.GetAdapter(AdapterType.Minimal);
专业化和制造更多的工厂,例如:
public static class MidAdapterFactory
{
public static IAdapter GetAdapter(AdapterType claimType, int mid)
{
}
}
public static class TidAdapterFactory
{
public static IAdapter GetAdapter(AdapterType claimType, int tid)
{
}
}
还要考虑构建器模式。