第二十六讲:基础一开放封闭原则
做出來(lái)的軟件具有很強(qiáng)的擴(kuò)展性,擴(kuò)展并不是修改以前的源代碼,而是在以前的代碼之外添加新的功能.
重點(diǎn)是對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉.
銀行業(yè)務(wù)員下有很多子類:負(fù)責(zé)存款的銀行業(yè)務(wù)員,負(fù)責(zé)取款的銀行業(yè)務(wù)員,負(fù)責(zé)轉(zhuǎn)賬的銀行業(yè)務(wù)員.
Client是進(jìn)行模塊的調(diào)用,不算模塊的修改.除了客戶端MainClass之外,其他都是模塊:BankWorker、DrawingBankWorker、JiJinBankWorker、SavingBankWorker、zhuanzhangBankWorker
僅僅是通過(guò)添加子類就實(shí)現(xiàn)了功能的擴(kuò)展.
特別是最重要的抽象模塊不能再修改,就是這里的BankWorker模塊沒(méi)有再修改.接口是一定不要修改的,否則它的所有的實(shí)現(xiàn)子類都要修改.如果接口中的方法被修改了,Client中的調(diào)用接口的方法都會(huì)受到影響.所以最重要是抽象模塊不能被修改.
?
/** 銀行業(yè)務(wù)員* */ public class BankWorker {//負(fù)責(zé)存款業(yè)務(wù)public void saving() {System.out.println("進(jìn)行存款操作");}//負(fù)責(zé)取款業(yè)務(wù)public void drawing(){System.out.println("進(jìn)行取款操作");}//負(fù)責(zé)轉(zhuǎn)賬業(yè)務(wù)public void zhuanzhang(){System.out.println("進(jìn)行轉(zhuǎn)賬操作");}//負(fù)責(zé)基金的申購(gòu)public void jijin(){System.out.println("進(jìn)行基金申購(gòu)操作");} } public class MainClass {public static void main(String[] args) {BankWorker bankWorker = new BankWorker();//存款 bankWorker.saving();//取款 bankWorker.drawing();//轉(zhuǎn)賬業(yè)務(wù) bankWorker.zhuanzhang();//負(fù)責(zé)基金采購(gòu) bankWorker.jijin();} } package com.ibeifeng.ex2; /** 銀行業(yè)務(wù)員接口,是所有業(yè)務(wù)員的抽象父類* */ public interface BankWorker {public void operation(); } package com.ibeifeng.ex2; /** 負(fù)責(zé)取款業(yè)務(wù)的業(yè)務(wù)員* * */ public class DrawingBankWorker implements BankWorker{@Overridepublic void operation() {// TODO Auto-generated method stubSystem.out.println("進(jìn)行取款操作");}} package com.ibeifeng.ex2;public class JiJinBankWorker implements BankWorker {@Overridepublic void operation() {// TODO Auto-generated method stubSystem.out.println("進(jìn)行基金申購(gòu)操作");}} package com.ibeifeng.ex2;public class MainClass {public static void main(String[] args) {BankWorker bankWorker = new SavingBankWorker();bankWorker.operation();BankWorker bankWorker2 = new DrawingBankWorker();bankWorker2.operation();BankWorker bankWorker3 = new zhuanzhangBankWorker();bankWorker3.operation();BankWorker bankWorker4 = new JiJinBankWorker();bankWorker4.operation();} } package com.ibeifeng.ex2; /** 負(fù)責(zé)存款的業(yè)務(wù)員* */ public class SavingBankWorker implements BankWorker {@Overridepublic void operation() {// TODO Auto-generated method stubSystem.out.println("進(jìn)行存款操作");}} package com.ibeifeng.ex2; /** 負(fù)責(zé)轉(zhuǎn)賬業(yè)務(wù)的銀行業(yè)務(wù)員* */public class zhuanzhangBankWorker implements BankWorker{@Overridepublic void operation() {// TODO Auto-generated method stubSystem.out.println("進(jìn)行轉(zhuǎn)賬操作");}}?
轉(zhuǎn)載于:https://www.cnblogs.com/ZHONGZHENHUA/p/6760891.html
總結(jié)
以上是生活随笔為你收集整理的第二十六讲:基础一开放封闭原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 字符串和容器总结
- 下一篇: NAT STURN,ICE