国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

面向?qū)ο笤O計的六大原則(SOLID原則)-——單一職責原則

這篇具有很好參考價值的文章主要介紹了面向?qū)ο笤O計的六大原則(SOLID原則)-——單一職責原則。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

單一職責原則(Single Responsibility Principle, SRP)是面向?qū)ο缶幊毯驮O計的五大SOLID原則之一。它強調(diào)一個類、方法或模塊應該只有一個職責,即只做一件事情。如果一個類承擔的職責過多,那么它的可維護性、可讀性和可擴展性都會受到影響。當需要修改類的某個職責時,可能會影響到其他職責的實現(xiàn),導致不必要的代碼改動和潛在的bug。

詳細解釋

一個類應該只有一個引起變化的原因。這意味著,如果你能夠想到多于一個的動機去改變一個類,那么這個類就具有多于一個的職責,就應該考慮類的職責分離。

應用場景及代碼示例(C#)

場景1:日志記錄類

描述:一個類只負責日志的記錄,包括日志的寫入、格式化等。

代碼示例

public interface ILogger  
{  
    void Log(string message);  
}  
  
public class ConsoleLogger : ILogger  
{  
    public void Log(string message)  
    {  
        Console.WriteLine($"Logged: {message}");  
    }  
}  
  
public class FileLogger : ILogger  
{  
    private readonly string _filePath;  
  
    public FileLogger(string filePath)  
    {  
        _filePath = filePath;  
    }  
  
    public void Log(string message)  
    {  
        File.AppendAllText(_filePath, $"Logged: {message}{Environment.NewLine}");  
    }  
}

在這個例子中,ConsoleLoggerFileLogger 都實現(xiàn)了 ILogger 接口,但它們各自只負責一種日志記錄方式。

場景2:用戶認證類

描述:一個類只負責用戶的登錄、注冊和身份驗證等功能。

代碼示例

public interface IAuthenticationService  
{  
    bool RegisterUser(User user);  
    bool LoginUser(string username, string password);  
    bool IsUserAuthenticated(string token);  
}  
  
public class AuthenticationService : IAuthenticationService  
{  
    // 假設這里有一些用戶存儲和驗證邏輯...  
    public bool RegisterUser(User user)  
    {  
        // 注冊用戶邏輯...  
        return true; // 示例返回值  
    }  
  
    public bool LoginUser(string username, string password)  
    {  
        // 登錄用戶邏輯...  
        return true; // 示例返回值  
    }  
  
    public bool IsUserAuthenticated(string token)  
    {  
        // 驗證用戶邏輯...  
        return true; // 示例返回值  
    }  
}

在這個例子中,AuthenticationService 類實現(xiàn)了 IAuthenticationService 接口,并且只負責用戶認證相關(guān)的操作。

場景3:訂單處理類

描述:一個類只負責訂單的創(chuàng)建、修改和取消等功能。

代碼示例

public class Order  
{  
    // 訂單屬性...  
}  
  
public interface IOrderService  
{  
    Order CreateOrder(Order order);  
    Order UpdateOrder(Order order);  
    void CancelOrder(Order order);  
}  
  
public class OrderService : IOrderService  
{  
    public Order CreateOrder(Order order)  
    {  
        // 創(chuàng)建訂單邏輯...  
        return order; // 示例返回值  
    }  
  
    public Order UpdateOrder(Order order)  
    {  
        // 更新訂單邏輯...  
        return order; // 示例返回值  
    }  
  
    public void CancelOrder(Order order)  
    {  
        // 取消訂單邏輯...  
    }  
}

在這個例子中,OrderService 類實現(xiàn)了 IOrderService 接口,并且只負責訂單處理相關(guān)的操作。它不包含與訂單無關(guān)的邏輯,比如庫存管理或用戶認證。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-838858.html

到了這里,關(guān)于面向?qū)ο笤O計的六大原則(SOLID原則)-——單一職責原則的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 設計模式—— 單一職責原則

    1,代碼重用性(即:相同功能的代碼,不用多次編寫) 2,可讀性(即:編程規(guī)范性,便于其他程序員的閱讀和理解) 3,可擴展性(當需要增加新的功能時,非常的方便,稱為可維護性) 4,可靠性(即:當我們增加新的功能時,對原來的功能沒有影響) 5,使程序呈現(xiàn)高內(nèi)

    2024年02月12日
    瀏覽(18)
  • 設計模式原則之:單一職責模式

    ? 對類來說的,即一個類應該只負責一項職責。如類A負責兩個不同的職責,職責1,職責2。當職責1需求變更而改變A時,可能造成職責2智行錯誤,所以要將類A的粒度分解為A1,A2

    2024年02月15日
    瀏覽(18)
  • 【C++設計模式】單一職責原則

    2023年8月26日,周六上午 目錄 概述 一個簡單的例子 用單一職責原則來設計一個簡單的學生管理系統(tǒng) 單一職責原則(Single Responsibility Principle,SRP),它是面向?qū)ο笤O計中的一個基本原則。 單一職責原則的核心思想是,一個類應該只有一個引起它變化的原因。 換句話說, 一個

    2024年02月11日
    瀏覽(23)
  • 設計模式和七大原則概述及單一職責原則詳解

    設計模式的目的 編寫軟件過程中,程序員面臨著來自,耦合性,內(nèi)聚性以及可維護性,擴展性,重用性等方面的挑戰(zhàn)。設計模式是為了讓程序,具有更好的 1.代碼重用性(相同代碼,不用重復編寫) 2.可讀性(編程規(guī)范性,便于其他程序員的閱讀和理解) 3.可擴展性(當需要增加新

    2024年02月12日
    瀏覽(25)
  • 【8】c++設計模式——>單一職責原則

    C++面向?qū)ο笕筇匦灾坏?封裝 指的就是將單一事物抽象出來組合成一個類,所以我們在設計類的時候每個類中處理的是單一事物而不是某些事物的集合。讓類的功能單一,不讓類與具體的事物耦合。 設計模式中所謂的單一職責原則,就是對一個類而言,應該僅有一個引起

    2024年02月07日
    瀏覽(21)
  • 面向?qū)ο笤O計原則實驗之“接口隔離原則”

    面向?qū)ο笤O計原則實驗之“接口隔離原則”

    客戶端不應該依賴那些它不需要的接口。 實驗一 考慮一個安全系統(tǒng)。在這個系統(tǒng)中,有一些Door對象,可以被加鎖和解鎖,并且Door對象知道自己是開著還是關(guān)著。這個Door編碼成一個接口,這樣客戶程序就可以使用那些符合Door接口的對象,而不需要依賴于Door的特定實現(xiàn)。 現(xiàn)

    2024年04月12日
    瀏覽(24)
  • 【設計模式】面向?qū)ο笤O計八大原則

    (1)依賴倒置原則(DIP) 高層模塊(穩(wěn)定)不應該依賴于低層模塊(變化),二者都應該依賴于抽象(穩(wěn)定)。 抽象(穩(wěn)定)不應該依賴于變化),實現(xiàn)細節(jié)應該依賴于抽象(穩(wěn)定)。 (2)開放封閉原則(OCP) 對擴展開放,對更改封閉。 類模塊應該是可擴展的,但是不可

    2024年02月10日
    瀏覽(29)
  • 面向?qū)ο蟮脑O計原則

    面向?qū)ο蟮脑O計原則

    設計模式:對軟件設計中普遍存在(反復出現(xiàn))的各種問題,所提出的解決方案。每一個設計模式系統(tǒng)地命名、解釋和評價了面向?qū)ο笙到y(tǒng)中一個重要的和重復出現(xiàn)的設計 三大特性:封裝、繼承、多態(tài) 接口:若干抽象方法的集合 作用:限制實現(xiàn)接口的類必須按照接口給定的

    2024年02月10日
    瀏覽(23)
  • 01_面向?qū)ο蟮脑O計原則

    01_面向?qū)ο蟮脑O計原則

    參考資料: 視頻 書籍 《設計模式:可復用面向?qū)ο筌浖幕A》 面對復雜問題如何解決? 分解:分而治之,大問題分解成小問題。 抽象:忽視非本質(zhì)的細節(jié),處理泛化和理想化的對象模型。 面向?qū)ο?從語言實現(xiàn)看,是代碼和數(shù)據(jù)的封裝 是一系列的公共接口 某種擁有責任

    2024年02月13日
    瀏覽(20)
  • 基于面向?qū)ο蠡A設計——里氏替換原則

    基于面向?qū)ο蠡A設計——里氏替換原則

    在Java中,支持抽象和多態(tài)的關(guān)鍵機制之一是繼承。正是使用了繼承,我們才可以創(chuàng)建實現(xiàn)父類中抽象方法的子類。那么,是什么規(guī)則在支配著這種特殊的繼承用法呢?最佳的繼承層次的特征又是什么呢?在什么情況下會使我們創(chuàng)建的類層次結(jié)構(gòu)掉進不符合開閉原則的陷阱中呢

    2024年02月14日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包