91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c# get set有哪些設計模式應用

c#
小樊
81
2024-11-23 18:37:32
欄目: 編程語言

在C#中,Get和Set方法通常用于訪問和修改類的屬性。在設計模式中,這些方法的應用可以增強代碼的可維護性、可擴展性和封裝性。以下是一些設計模式在C#中Get和Set方法的應用示例:

  1. 單例模式(Singleton Pattern): 在單例模式中,Get和Set方法用于確保一個類只有一個實例,并提供一個全局訪問點。
public class Singleton
{
    private static Singleton _instance;

    private Singleton() { }

    public static Singleton Instance
    {
        get { return _instance ?? (_instance = new Singleton()); }
    }
}
  1. 工廠模式(Factory Pattern): 工廠模式中,Get和Set方法用于創建和管理對象實例。
public interface IProduct
{
    void Use();
}

public class ConcreteProduct : IProduct
{
    public void Use()
    {
        Console.WriteLine("Using ConcreteProduct");
    }
}

public class ProductFactory
{
    private static Dictionary<string, IProduct> _products = new Dictionary<string, IProduct>();

    public static IProduct GetProduct(string key)
    {
        if (!_products.ContainsKey(key))
        {
            _products[key] = new ConcreteProduct();
        }

        return _products[key];
    }

    public static void SetProduct(string key, IProduct product)
    {
        _products[key] = product;
    }
}
  1. 觀察者模式(Observer Pattern): 在觀察者模式中,Get和Set方法用于管理觀察者列表并通知它們有關被觀察對象的狀態更改。
public interface ISubject
{
    event EventHandler DataChanged;

    void AddObserver(IObserver observer);
    void RemoveObserver(IObserver observer);
}

public interface IObserver
{
    void Update();
}

public class Subject : ISubject
{
    private List<IObserver> _observers = new List<IObserver>();
    private string _data;

    public event EventHandler DataChanged;

    public void AddObserver(IObserver observer)
    {
        _observers.Add(observer);
    }

    public void RemoveObserver(IObserver observer)
    {
        _observers.Remove(observer);
    }

    public void SetData(string data)
    {
        _data = data;
        DataChanged?.Invoke(this, EventArgs.Empty);
    }

    public string GetData()
    {
        return _data;
    }
}

這些示例展示了如何在C#中使用Get和Set方法來實現不同的設計模式。這些設計模式有助于提高代碼的可維護性、可擴展性和封裝性。

0
牡丹江市| 合水县| 巩义市| 富裕县| 周宁县| 兴国县| 建始县| 家居| 弥渡县| 孟州市| 赞皇县| 湘阴县| 寿宁县| 巴中市| 孝义市| 抚州市| 龙川县| 尼勒克县| 松江区| 寻乌县| 苍梧县| 洱源县| 托克逊县| 宣威市| 黑河市| 交城县| 阿荣旗| 克东县| 阿克| 全州县| 陆丰市| 获嘉县| 安新县| 甘肃省| 琼结县| 汝南县| SHOW| 马尔康县| 上虞市| 利川市| 宾川县|