[英]Does Static Factory apply to C#?
我正在閱讀有關靜態工廠方法的信息。 靜態工廠方法編碼技術僅適用於Java,還是可以適用於C#.Net? 似乎更像是Java。
https://dzone.com/articles/constructors-or-static-factory-methods
class Color {
private final int hex;
static Color makeFromRGB(String rgb) {
return new Color(Integer.parseInt(rgb, 16));
}
static Color makeFromPalette(int red, int green, int blue) {
return new Color(red << 16 + green << 8 + blue);
}
static Color makeFromHex(int h) {
return new Color(h);
}
private Color(int h) {
return new Color(h);
}
}
是的,它絕對可以在C#中應用,並且通常是一個好主意-尤其是當您想以各種方式構造某些東西的時候,都是使用相同的參數類型。
例如,看一下TimeSpan
。 那有工廠方法FromSeconds
, FromMinutes
, FromHours
, FromDays
所有這些方法都接受一個double
作為參數類型。
工廠方法模式還允許在某些情況下進行緩存。
Static Factory
是工廠方法設計模式的一種變體,可以用於多種語言,而不僅僅是Java和C#。
它們已經存在於TimeSpan
類的C#中,您可以執行以下操作:
var seconds = TimeSpan.FromSeconds(5);
var minutes = TimeSpan.FromSeconds(25);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.