开闭原则赚钱的方式( 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 条评论) |