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

ui做的好的公司网站wordpress注册直接显示密码错误

ui做的好的公司网站,wordpress注册直接显示密码错误,聚诚商务做网站多少钱,seo网站排名优化价格设计模式原则 设计模式示例代码库地址#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/14310820/

相关文章:

  • 中小企业网站建设新闻汕头市建设工程信息网
  • 通讯设备东莞网站建设企业网站上线
  • 网站建设费用摊销谷歌浏览器下载手机版app
  • 网站怎样做的程序开发多少钱
  • 陕西手机网站建设公司哪家好郑州开发软件公司
  • 源码出售网站怎么样在百度上推广自己的产品
  • 做影视类短视频的资源网站普陀网站开发培训学校
  • 什么网站做私人空间好世界杯排名
  • 网站预约功能怎么做开公司流程及费用
  • 做威士忌的网站分类信息网站建设专职
  • 青岛城市建设局网站网站付费怎么做
  • 相亲网站策划书jsp源码做网站
  • 深圳专业商城网站设计国内优秀网页设计赏析
  • 网站建设 2018软件设计师考试
  • 2017wordpress整站源码苏州专业设计网站
  • 个人备案 网站名首钢建设二建设公司网站
  • 网站外接百度手机网站生成
  • 淘客app网站是怎么做的制作网站专业公司吗
  • 做网站的毕业设计网站备案收费吗
  • 江苏省建设厅网站建筑电工证全国公共信息服务平台
  • 十堰做网站最好的公司公司宣传片制作
  • 打开有些网站显示建设中网站网页怎么设计
  • 网站开发公司兴田德润在那里发帖平台
  • 河北雄安新区规划建设局网站怎样注册商标申请
  • 营销型网站重要性市场监督管理局电话举报电话
  • 工人找工作哪个网站好网上注册一个公司需要多少钱
  • 北京当地网站 点广州建设公司网站
  • 哪个网站可以做平面兼职wordpress的站点地址和
  • 原型样网站福州科技网站建设怎么做
  • 苏州公司建设网站wordpress 指定分类