当前位置: 首页 > news >正文

ui做的好的公司网站邢台网站建设企业

ui做的好的公司网站,邢台网站建设企业,培训网站html,网站建设的工作视频人的吗设计模式原则 设计模式示例代码库地址#xff1a; https://gitee.com/Jasonpupil/designPatterns 里氏替换原则 继承必须确保父类所拥有的性质在子类中依然成立 与开闭原则不同的是开闭原则可以改变父类原有的功能#xff0c;里氏替换原则不能修改父类的原有的性质#…设计模式原则 设计模式示例代码库地址 https://gitee.com/Jasonpupil/designPatterns 里氏替换原则 继承必须确保父类所拥有的性质在子类中依然成立 与开闭原则不同的是开闭原则可以改变父类原有的功能里氏替换原则不能修改父类的原有的性质即使子类扩展了父类的功能也不能改变父类的原有功能 提高兼容性、维护性和扩展性 子类和父类的接口保持一致确保在任何使用父类的地方都可以替换为子类而不会影响系统功能子类能够无缝地替换父类替换时不需要修改客户端代码方便地扩展新功能而不需要对现有代码进行大规模修改由于子类完全遵循父类的契约系统在替换子类时不容易出现未预见的运行时错误 使用场景银行卡存储 信用卡继承并重写储蓄卡的功能破坏了里氏替换原则根据里氏替换原则进行修改 里氏替换原则替换前示例代码 储蓄卡类 /*** Description: 模拟储蓄卡功能* Author: pupil* Date: 2024/06/23 下午 10:04*/ public class CashCard {private Logger logger LoggerFactory.getLogger(CashCard.class);private static ListString tradeList new ArrayList();/*** 提现** param orderId 单号* param amount 金额* return 状态码 0000成功、0001失败、0002重复*/public String withdrawal(String orderId, BigDecimal amount) {// 模拟支付成功logger.info(提现成功单号{} 金额{}, orderId, amount);return 0000;}/*** 储蓄** param orderId 单号* param amount 金额* return 状态码 0000成功、0001失败、0002重复*/public String recharge(String orderId, BigDecimal amount) {// 模拟充值成功logger.info(储蓄成功单号{} 金额{}, orderId, amount);return 0000;}/*** 交易流水查询** return 交易流水*/public ListString tradeFlow() {logger.info(交易流水查询成功);tradeList.add(14451,100.00);tradeList.add(14451,65.00);tradeList.add(14451,76.50);tradeList.add(14451,126.00);return tradeList;} }信用卡类 /*** Description: 模拟信用卡功能重写父类的方法违法里氏替换原则* Author: pupil* Date: 2024/06/23 下午 10:32*/public class CreditCard extends CashCard{private Logger logger LoggerFactory.getLogger(CashCard.class);/*** param orderId 单号* param amount 金额* return 状态码 0000成功、0001失败、0002重复*/Overridepublic String withdrawal(String orderId, BigDecimal amount) {// 校验if (amount.compareTo(new BigDecimal(1000)) 0){logger.info(贷款金额校验(限额1000元)单号{} 金额{}, orderId, amount);return 0001;}// 模拟生成贷款单logger.info(生成贷款单单号{} 金额{}, orderId, amount);// 模拟支付成功logger.info(贷款成功单号{} 金额{}, orderId, amount);return 0000;}/**** param orderId 单号* param amount 金额* return 状态码 0000成功、0001失败、0002重复*/Overridepublic String recharge(String orderId, BigDecimal amount) {// 模拟生成还款单logger.info(生成还款单单号{} 金额{}, orderId, amount);// 模拟还款成功logger.info(还款成功单号{} 金额{}, orderId, amount);return 0000;}Overridepublic ListString tradeFlow() {return super.tradeFlow();}}测试类 /*** Description: 验证测试* Author: pupil* Date: 2024/06/23 下午 10:33*/public class ApiTest {private Logger logger LoggerFactory.getLogger(ApiTest.class);Testpublic void test_CashCard() {CashCard cashCard new CashCard();// 提现cashCard.withdrawal(14451, new BigDecimal(100));// 储蓄cashCard.recharge(14451, new BigDecimal(100));// 交易流水ListString tradeFlow cashCard.tradeFlow();logger.info(查询交易流水{}, JSON.toJSONString(tradeFlow));}Testpublic void test_CreditCard() {CreditCard creditCard new CreditCard();// 支付creditCard.withdrawal(14451, new BigDecimal(100));// 还款creditCard.recharge(14451, new BigDecimal(100));// 交易流水ListString tradeFlow creditCard.tradeFlow();logger.info(查询交易流水{}, JSON.toJSONString(tradeFlow));}}结果 里氏替换原则替换后示例代码 银行卡类 /** * Description: 银行卡 * Author: pupil * Date: 2024/06/23 下午 10:46 */ public abstract class BankCard {private Logger logger LoggerFactory.getLogger(BankCard.class);private static ListString tradeList new ArrayListString();private String cardId; // 卡号private String cardDate; // 开卡时间public BankCard(String cardId, String cardDate) {this.cardId cardId;this.cardDate cardDate;}abstract boolean rule(BigDecimal amount);/*** 正向入账 钱* param orderId 单号* param amount 金额* return 状态码 0000成功、0001失败、0002重复*/public String positive(String orderId, BigDecimal amount) {// 入款成功存款、还款logger.info(卡号{} 入款成功单号{} 金额{}, cardId, orderId, amount);return 0000;}/*** 逆向入账- 钱* param orderId* param amount* return 状态码 0000成功、0001失败、0002重复*/public String negative(String orderId, BigDecimal amount) {// 入款成功存款、还款logger.info(卡号{} 出款成功单号{} 金额{}, cardId, orderId, amount);return 0000;}/*** 交易流水查询** return 交易流水*/public ListString tradeFlow() {logger.info(交易流水查询成功);tradeList.add(14451,100.00);tradeList.add(14451,80.00);tradeList.add(14451,76.50);tradeList.add(14451,126.00);return tradeList;}public String getCardId() {return cardId;}public String getCardDate() {return cardDate;} }/** * Description: 模拟储蓄卡功能 * Author: pupil * Date: 2024/06/23 下午 10:04 */ public class CashCard extends BankCard {private Logger logger LoggerFactory.getLogger(CashCard.class);public CashCard(String cardNo, String cardDate) {super(cardNo, cardDate);}boolean rule(BigDecimal amount) {return true;}/*** 提现** param orderId 单号* param amount 金额* return 状态码 0000成功、0001失败、0002重复*/public String withdrawal(String orderId, BigDecimal amount) {// 模拟支付成功logger.info(提现成功单号{} 金额{}, orderId, amount);return super.negative(orderId, amount);}/*** 储蓄** param orderId 单号* param amount 金额*/public String recharge(String orderId, BigDecimal amount) {// 模拟充值成功logger.info(储蓄成功单号{} 金额{}, orderId, amount);return super.positive(orderId, amount);}} 信用卡类 /** * Description: 模拟信用卡功能重写父类的方法违法里氏替换原则 * Author: pupil * Date: 2024/06/23 下午 10:32 */ public class CreditCard extends CashCard{private Logger logger LoggerFactory.getLogger(CashCard.class);public CreditCard(String cardNo, String cardDate) {super(cardNo, cardDate);}/*** 金额规则* 根据里氏替换原则不能重写父类的rule方法所以新构建一个方法* param amount* return*/boolean rule2(BigDecimal amount) {return amount.compareTo(new BigDecimal(1000)) 0;}/*** 提现信用卡贷款** param orderId 单号* param amount 金额* return 状态码 0000成功、0001失败、0002重复*/public String loan(String orderId, BigDecimal amount) {boolean rule rule2(amount);if (!rule) {logger.info(生成贷款单失败金额超限。单号{} 金额{}, orderId, amount);return 0001;}// 模拟生成贷款单logger.info(生成贷款单单号{} 金额{}, orderId, amount);// 模拟支付成功logger.info(贷款成功单号{} 金额{}, orderId, amount);return super.negative(orderId, amount);}/*** 还款信用卡还款** param orderId 单号* param amount 金额* return 状态码 0000成功、0001失败、0002重复*/public String repayment(String orderId, BigDecimal amount) {// 模拟生成还款单logger.info(生成还款单单号{} 金额{}, orderId, amount);// 模拟还款成功logger.info(还款成功单号{} 金额{}, orderId, amount);return super.positive(orderId, amount);} }测试类 /** * Description: 测试验证 * Author: pupil * Date: 2024/06/23 下午 10:51 */ public class ApiTest {private Logger logger LoggerFactory.getLogger(ApiTest.class);Testpublic void test_bankCard() {logger.info(里氏替换前CashCard类);CashCard bankCard new CashCard(800999898, 2024-06-23);// 提现bankCard.withdrawal(14451, new BigDecimal(100));// 储蓄bankCard.recharge(14451, new BigDecimal(100));logger.info(里氏替换后CreditCard类);CashCard creditCard new CreditCard(800999898, 2024-06-23);// 提现creditCard.withdrawal(14451, new BigDecimal(1000000));// 储蓄creditCard.recharge(14451, new BigDecimal(100));// 交易流水ListString tradeFlow bankCard.tradeFlow();logger.info(查询交易流水{}, JSON.toJSONString(tradeFlow));}Testpublic void test_CreditCard(){CreditCard creditCard new CreditCard(800999898, 2024-06-23);// 支付贷款creditCard.loan(14451, new BigDecimal(100));// 还款creditCard.repayment(14451, new BigDecimal(100));// 交易流水ListString tradeFlow creditCard.tradeFlow();logger.info(查询交易流水{}, JSON.toJSONString(tradeFlow));} }结果 根据里氏替换原则的示例类图 银行卡和储蓄卡是泛化关系储蓄卡继承于银行卡 储蓄卡和信用卡是泛化关系信用卡继承于储蓄卡
http://www.hkea.cn/news/14392071/

相关文章:

  • 柏乡县网站建设wordpress修改样式表
  • 最强的手机网站建设官网设计优秀案例
  • wordpress move 插件株洲有实力关键词优化服务
  • 可以看所有网站的浏览器建设厅特种工
  • 白云品牌型网站建设seo服务是什么
  • 电商学院建设设计网站广告公司起名如何起
  • 影楼手机网站设计博物馆网站建设目的
  • 青岛西海岸新区建设局网站公司注册有限公司
  • 企业网站关键词云南网站设计平台
  • 青岛济南网站制作自学做蛋糕的网站
  • 网站建设 ui设计公司网站做支付宝花呗分期
  • 阿里网站建设需要准备什么软件建设英语网站目的
  • 郏县住房和城乡建设局网站开福区网站建设中
  • 公司想建个网站广告设计与制作专业属于什么大类
  • 米枫网站怎么做分页安卓手机软件开发平台
  • 中国有名的模版网站网站后台系统的易用性
  • 工程建设业主官方网站wordpress 点评插件
  • 锦州网站建设报价建设工程执业注册中心网站
  • 环保网站建设价格现在做一个什么的网站比较好
  • 官方网站下载派的app可以做思维导图的网站
  • wordpress的目录结构(一)西安seo排名公司
  • 广州网站建设 骏域wordpress 萌化主题
  • 河南网站建设路国外设计师wordpress主题
  • 禹州市门户网站建设邢台网络推广
  • 网站建设价格优惠广州网站优化网站建设
  • 网站建设实习生怎么样黄冈网站seo
  • 网站相对路径和绝对路径应用界面设计
  • 太原搭建网站的公司深圳网络营销推广中心
  • 尚品本色木门网站是哪个公司做的wordpress查询标签
  • 做网站的会计分录山东建设兵团网站