Java設計模式之合成複用原則

合成複用原則是指通過將另外一個對象注入到當前對象中,作爲當前對象的成員變量,當前對象可以調用另外一個對象的功能,從而實現複用的效果。
合成複用原則要求我們儘量使用對象組合的方式而不是繼承的方法達到軟件複用的目的。這樣可以使系統更加靈活,降低類與類之間的耦合度,一個類的變化對其他類的影響相對較少。
代碼示例如下:
創建抽象類Dishes:

public abstract class Dishes {

    public abstract String getName();
}

創建子類:

public class Hamburger extends Dishes {

    @Override
    public String getName() {
        return "漢堡";
    }
}

創建顧客類:

public class Person {

    private Dishes dishes;

    public Person(Dishes dishes) {
        this.dishes = dishes;
    }

    public void eat() {
        System.out.println("吃" + dishes.getName());
    }
}

創建業務類:

public class Test {

    public static void main(String[] args) {
        Person person = new Person(new Hamburger());
        person.eat();
    }
}

這是一個非常典型的業務場景,一旦增加新的食物,我們可以不修改Person類的代碼,直接新建食物類繼承Dishes類即可,符合開閉原則

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章