首页 > 作文

Java设计模式七大原则之开闭原则详解

更新时间:2023-04-04 23:40:04 阅读: 评论:0

目录
定义案例需求方案一执行结果方案二执行结果对比分析总结

定义

开闭原则赚钱的方式( open clcome现在分词o principle ),又称为ocp原则,即一个软件实体如类,模块和函数应该对扩展开放,对修改关闭。其中,对扩展开放是针对提供方来说的,对修改关闭是针对调用方来说的。

案例

需求

购买东西的时候,根据支付类型的不同使用不同的方式进行支付,当类型为1时,使用微信支付;当类型为2时,使用支付宝支付

方案一

定义支付类型

/** * 支付类型 * @author:liyajie * @createtime:2022/2/7 10:21 * @version:1.0 */public class paytype {    int type;}

定义微信支付类

/** * 微信支付类 * @author:liyajie * @createtime:2022/2/7 10:46 * @version:1.0 */public class wxpay extends paytype{    wxpay(){        super.type = 1;    }}

定义支付宝支付类

/** * 支付宝支付类 * @author:liyajie * @createtime:2022/2/7 10:46 * @version:1.0 */public class zfbpay extends paytype{    zfbpay(){        super.type = 2;    }}

定义支付操作类

/** * @desc: * @author:liyajie * @createtime:2022/2/7 10:41 * @version:1.0 */public class pay {    public void pay(paytype s) {        if (s.type == 1) {            wxpay(s);        } el if (s.type == 2) {            zfbpay(s);        }    }    // 微信支付    public void wxpay(paytype r) {        system.out.println(" 正在微信支付中---支付成功 ");    }    // 支付宝支付    public void zfbpay(paytype r) {        system.out.println(" 正在支付宝支付中---支付成功");    }}

定义测试类

/** * 测试类1 * @author:liyajie * @createtime:2022/2/7 10:48 * @version:1.0 */public class test1 {    public static void main(string[] args) {        new pay().pay(new wxpay());        ne两小儿辩日的翻译w pay().pay(new zfbpay());    }}

执行结果

方案二

定义支付类型基类

/** * 支付类型基类 * @author:liyajie * @createtime:2022/2/7 10:21 * @version:1.0 */public abstract class paytypenew {    int type;    public abstract void pay();}

定义微信支付类

/** * 微信支付类 * @author:liyajie * @createtime:2022/2/7 10:46 * @version:1.0 */public class wxpaynew extends paytypenew{    wxpaynew(){        super.type = 1;    }    @override    public void pay() {        system.out.println(" 正在微信支付中---支付成功 ");    }}

定义支付宝支付类

/** * 支付宝支付类 * @author:liyajie * @createtime:2022/2/7 10:46 * @version:1.0 */public class zfbpaynew extends paytypenew{    zfbpaynew(){        super.type = 2;    }    @override    publi小说开头的作用c void pay() {        system.out.println(" 正在支付宝支付中---支付成功");    }}

定义支付操作类

/** * 支付操作类 * @author:liyajie * @createtime:2022陆游的诗句/2/7 10:41 * @version:1.0 */public class paynew {    public void pay(paytypenew paytypenew) {        paytypenew.pay();    }}

定义测试类

/** * 测试类2 * @author:liyajie * @createtime:2022/2/7 10:48 * @version:1.0 */public class test2 {    public static void main(string[] args) {       new paynew().pay(new wxpaynew());       new paynew().pay(new zfbpaynew());    }}

执行结果

对比分析

方案一,未遵守开闭原则,耦合较高,如果需求需要扩展,比如再增加一个信用卡支付,那么需要改的地方较大,风险较高

方案二,遵守开闭原则,耦合低,扩展方便,并且也提高了代码的复用性,维护起来也很方便

总结

开闭原则是最基础最重要的设计原则,开闭原则可以提高复用性和可维护性

到此这篇关于java设计模式七大原则之开闭原则详解的文章就介绍到这了,更多相关java开闭原则内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 23:40:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/57f6b68fe965f65e78b6cb5bd648d305.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Java设计模式七大原则之开闭原则详解.doc

本文 PDF 下载地址:Java设计模式七大原则之开闭原则详解.pdf

标签:定义   支付宝   原则   类型
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图