簡體   English   中英

靜態工廠是否適用於C#?

[英]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 那有工廠方法FromSecondsFromMinutesFromHoursFromDays所有這些方法都接受一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM