最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java設(shè)計(jì)模式中單一職責(zé)原則詳解

 更新時(shí)間:2023年05月11日 11:27:19   作者:_GGBond_  
這篇文章主要介紹了Java設(shè)計(jì)模式中單一職責(zé)原則詳解,單一職責(zé)原則 (SRP) 是軟件設(shè)計(jì)中的一個(gè)重要原則,它要求每個(gè)類只負(fù)責(zé)一個(gè)職責(zé),需要的朋友可以參考下

前言

本博主將用CSDN記錄軟件開發(fā)求學(xué)之路上親身所得與所學(xué)的心得與知識(shí),有興趣的小伙伴可以關(guān)注博主!也許一個(gè)人獨(dú)行,可以走的很快,但是一群人結(jié)伴而行,才能走的更遠(yuǎn)!

一、介紹

單一職責(zé)原則 (SRP) 是軟件設(shè)計(jì)中的一個(gè)重要原則,它要求每個(gè)類只負(fù)責(zé)一個(gè)職責(zé)。 如果類A負(fù)責(zé)兩個(gè)不同職責(zé):職責(zé)1,職責(zé)2。當(dāng)職責(zé)1需求變更而改變A時(shí),可能造成職責(zé)2執(zhí)行錯(cuò)誤。

這個(gè)原則的重要性在于:

  1. 降低類的復(fù)雜度,一個(gè)類只負(fù)責(zé)一項(xiàng)職責(zé);
  2. 提高類的可讀性,可維護(hù)性;
  3. 降低變更引起的風(fēng)險(xiǎn);
  4. 通常情況下,我們應(yīng)當(dāng)遵守單一職責(zé)原則,只有邏輯足夠簡單,才可以在代碼級(jí)違反單一職責(zé)原則;只有類中方法數(shù)量足夠少,可以在方法級(jí)別保持單一職責(zé)原則;

二、代碼演示

假設(shè)我們有一個(gè)名為Customer的類,它負(fù)責(zé)管理客戶的信息和交易。 現(xiàn)在我們想要對(duì)這個(gè)類進(jìn)行改進(jìn),讓它只負(fù)責(zé)一個(gè)職責(zé),也就是管理客戶信息交易。 我們可以考慮采用單一職責(zé)原則,將原來的兩個(gè)職責(zé)分開,讓Customer只負(fù)責(zé)管理客戶信息,而交易職責(zé)則由另一個(gè)類Transaction來負(fù)責(zé)。

// 客戶類,負(fù)責(zé)管理客戶信息和交易  
public class Customer {  
    private String name;  
    private int age;  
    private List<Transaction> transactions;
    public Customer(String name, int age) {  
        this.name = name;  
        this.age = age;  
        this.transactions = new ArrayList<>();  
    }
    public void addTransaction(Transaction transaction) {  
        this.transactions.add(transaction);  
    }
    public void removeTransaction(Transaction transaction) {  
        this.transactions.remove(transaction);  
    }
    public String getName() {  
        return name;  
    }
    public int getAge() {  
        return age;  
    }
    public List<Transaction> getTransactions() {  
        return transactions;  
    }  
}
// 交易類,負(fù)責(zé)管理交易  
public class Transaction {  
    private String description;  
    private double amount;
    public Transaction(String description, double amount) {  
        this.description = description;  
        this.amount = amount;  
    }
    public String getDescription() {  
        return description;  
    }
    public double getAmount() {  
        return amount;  
    }  
}
// 客戶端類,演示單一職責(zé)原則的應(yīng)用  
public class Client {  
    public static void main(String[] args) {  
        // 創(chuàng)建客戶對(duì)象  
        Customer customer = new Customer("John", 30);
        // 創(chuàng)建交易對(duì)象  
        Transaction transaction1 = new Transaction("Buy Coffee", 10.00);  
        Transaction transaction2 = new Transaction("Sell Stock", 50.00);
        // 添加交易到客戶對(duì)象  
        customer.addTransaction(transaction1);  
        customer.addTransaction(transaction2);
        // 獲取客戶信息和交易列表  
        String name = customer.getName();  
        int age = customer.getAge();  
        List<Transaction> transactions = customer.getTransactions();
        // 輸出客戶信息和交易列表  
        System.out.println("Customer name: " + name + ", age: " + age + ", transactions: " + transactions);  
    }  
}

在上面的代碼中,Customer類只負(fù)責(zé)管理客戶信息,它擁有了四個(gè)方法,分別是addTransaction,removeTransactiongetName,getAge。Transaction類只負(fù)責(zé)管理交易,它擁有了兩個(gè)方法,分別是getDescriptiongetAmount

Client類演示了單一職責(zé)原則的應(yīng)用,它創(chuàng)建了一個(gè)Customer對(duì)象,并添加了兩個(gè)Transaction對(duì)象到它的Customer對(duì)象中。最后,Client類獲取了Customer對(duì)象的NameTransaction列表,并輸出了它們。

通過上面的示例,我們可以看到單一職責(zé)原則的應(yīng)用可以讓代碼更加簡潔,易于維護(hù)和擴(kuò)展。

到此這篇關(guān)于Java設(shè)計(jì)模式中單一職責(zé)原則詳解的文章就介紹到這了,更多相關(guān)Java單一職責(zé)原則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

财经| 阳泉市| 白城市| 轮台县| 孟村| 兴城市| 肥城市| 青川县| 泸州市| 宜城市| 定西市| 亚东县| 巴青县| 上林县| 通河县| 略阳县| 嵊泗县| 迁安市| 阿图什市| 葵青区| 潼南县| 石首市| 安西县| 普安县| 铜陵市| 区。| 青冈县| 全州县| 和政县| 历史| 池州市| 县级市| 常山县| 东明县| 祁东县| 乡城县| 德惠市| 开鲁县| 红桥区| 额尔古纳市| 阳新县|