中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#設計模式應用

發布時間:2024-11-24 15:04:29 來源:億速云 閱讀:81 作者:小樊 欄目:編程語言

在C#中,設計模式是解決特定問題的經過驗證的解決方案。它們可以幫助你編寫更加靈活、可維護和可擴展的代碼。以下是一些常見的設計模式及其在C#中的應用示例:

1. 單例模式 (Singleton Pattern)

單例模式確保一個類只有一個實例,并提供一個全局訪問點。

public class Singleton
{
    private static readonly Singleton _instance = new Singleton();
    private Singleton() { }

    public static Singleton Instance => _instance;
}

2. 工廠模式 (Factory Pattern)

工廠模式提供了一種創建對象的接口,但具體的對象創建邏輯在子類中實現。

public interface IShape
{
    double Area();
}

public class Circle : IShape
{
    public double Radius { get; set; }

    public Circle(double radius)
    {
        Radius = radius;
    }

    public double Area()
    {
        return Math.PI * Radius * Radius;
    }
}

public class ShapeFactory
{
    public static IShape CreateShape(string shapeType)
    {
        switch (shapeType.ToLower())
        {
            case "circle":
                return new Circle(5);
            default:
                throw new ArgumentException("Invalid shape type");
        }
    }
}

3. 觀察者模式 (Observer Pattern)

觀察者模式定義了一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都會得到通知并被自動更新。

public interface IObserver
{
    void Update(string message);
}

public class EmailObserver : IObserver
{
    public void Update(string message)
    {
        Console.WriteLine($"Sending email: {message}");
    }
}

public class Publisher
{
    private List<IObserver> _observers = new List<IObserver>();

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

    public void NotifyObservers(string message)
    {
        foreach (var observer in _observers)
        {
            observer.Update(message);
        }
    }
}

4. 適配器模式 (Adapter Pattern)

適配器模式將一個類的接口轉換成客戶端所期望的另一個接口形式。

public interface ITarget
{
    void Request();
}

public class Adaptee
{
    public void SpecificRequest()
    {
        Console.WriteLine("Called SpecificRequest()");
    }
}

public class Adapter : ITarget
{
    private Adaptee _adaptee;

    public Adapter()
    {
        _adaptee = new Adaptee();
    }

    public void Request()
    {
        _adaptee.SpecificRequest();
    }
}

5. 裝飾器模式 (Decorator Pattern)

裝飾器模式允許你在不修改現有類的情況下,動態地添加新的功能。

public interface IComponent
{
    void Operation();
}

public class ConcreteComponent : IComponent
{
    public void Operation()
    {
        Console.WriteLine("ConcreteComponent operation");
    }
}

public class Decorator : IComponent
{
    private IComponent _component;

    public Decorator(IComponent component)
    {
        _component = component;
    }

    public void Operation()
    {
        _component.Operation();
        AddedBehavior();
    }

    private void AddedBehavior()
    {
        Console.WriteLine("Added behavior");
    }
}

這些設計模式在C#中的應用可以幫助你更好地組織和管理代碼,提高代碼的可維護性和可擴展性。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昭平县| 内乡县| 博罗县| 阿勒泰市| 聂拉木县| 赞皇县| 巴东县| 保德县| 新晃| 石嘴山市| 峨眉山市| 汶川县| 岳阳市| 宁国市| 黄大仙区| 名山县| 吐鲁番市| 鸡东县| 中方县| 潞西市| 呼和浩特市| 乐平市| 新余市| 平原县| 嘉禾县| 华蓥市| 隆回县| 惠东县| 武陟县| 夏津县| 德安县| 霍州市| 维西| 新龙县| 云梦县| 崇阳县| 定远县| 奉新县| 白银市| 高陵县| 利川市|