第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【九月打卡】第3天+開閉原則

標(biāo)簽:
Java

课程名称:Java设计模式精讲 Debug方式+内存分析

课程章节:第3章 软件设计七大原则

主讲老师:Geely

课程内容:

图片描述

问题1)开闭原则,最基层的原则。

开闭原则**:一个软件实体如类,模块,函数应该对扩展开发,对修改关闭(只扩展不修改)**。对修改行为的约束。

开闭原则的实现方法**:面向抽象编程,面向接口编程,**对业务进行抽象,写的都是抽象方法或者类。(不去修改原有的,不写具体的实现,而是在抽象的基础上进行添加或实现。)

优点:高复用和易维护。

问题2)为什么开闭原则只扩展,不修改呢?

只扩展不修改。(越基层的影响越大,越表层的影响越小)

修改原来接口,就得修改所有继承该接口的类,失去了接口规范的作用,并且非常复杂。

修改原来的类,如果该类非常复杂,并且如果有其他类使用,修改复杂而且可能发生错误。

问题3)开闭原则code?

******* 业务需求:现在业务扩展,要对Java课程price进行打折。**
*** 开闭原则:不能修改原来的类和接口。ICourse接口和javaCourse类**
*** 业务需求:现在业务扩展,要对Java课程price进行打折。**
*** 开闭原则:不能修改原来的类和接口**。**

版本1,**可以在接口中添加打折方法discountCourse()。让JavaCourse方法实现。

*** 这样虽然实现了,既能获取原价,又能获取打折价。但如果继承Icourse接口的课程很多。就需要一个个的实现类进行修改。也失去了接口的规范功能。**
版本2,******如果在JavaCourse类中直接对getPrice * 0.8。也可以进行打折。

  • 但是原价的获取方法就没有了。并且可能该类很复杂,如果直接在原来的类中修改。
  • 可能引起错误。

*** 版本3****,本着开闭原则,只扩展,不修改。可以写一个javaDisCourse类继承javaCourse类。**

*** 在javaDisCourse方法中添加打折方法。这样就遵循开闭原则。原来的ICourse接口和javaCourse类都没有修改。**

*** 注意:引用类型iCourse只调用实现类的继承的方法。不会调用实现类非继承方法。**

*** 如果想调用实现类非继承方法,就需要进行强制转换。**

原来的类结构图:

开闭原则之后的类结构图:

实例:

课程接口
public interface ICourse {
    //课程id,名称,价格
    Integer getId();
    String getName();
    Double getPrice();
}
java课程实现课程接口 

public class javaCourse implements ICourse {
    int id;
    String name;
    Double price;

    public javaCourse(int id, String name, Double price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }

    public Integer getId() {
        return this.id;
    }

    public String getName() {
        return this.name;
    }

    public Double getPrice() {
        return this.price;
    }
}
java打折课程实现类,继承java课程
public class JavaDiscountCourse extends javaCourse {
    public JavaDiscountCourse(int id, String name, Double price) {
        super(id, name, price);
    }

    public Double getOrignPrice(){
        return super.getPrice();
    }
    @Override
    public Double getPrice() {
        return super.getPrice()*0.8;
    }

}
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消