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

设计师 英文网站营销模式都有哪些

设计师 英文网站,营销模式都有哪些,电子工程网 单片机,访问wordpress时失败SOLID原则。 依赖倒置原则#xff08;DIP#xff09;的核心是高层模块不应该依赖于低层模块#xff0c;二者都应该依赖于抽象#xff08;接口或抽象类#xff09; 例如#xff0c;随着业务的发展#xff0c;订单总金额的计算规则可能需要根据不同的客户类型或促销活动…SOLID原则。 依赖倒置原则DIP的核心是高层模块不应该依赖于低层模块二者都应该依赖于抽象接口或抽象类 例如随着业务的发展订单总金额的计算规则可能需要根据不同的客户类型或促销活动进行调整。如果最初没有使用接口来抽象计算逻辑那么可能需要直接修改具体的业务代码这会增加代码的修改风险和维护成本。而使用接口可以方便地实现不同的计算策略通过依赖注入等方式进行切换提高系统的灵活性和可扩展性。 接下来我们逐步优化把他变得满足SRP和OCP、DIP原则了。 循环累加 public class Order {private double[] productPrices;public Order(double[] productPrices) {this.productPrices productPrices;}// 计算订单总金额的方法public double calculateTotalAmount() {double total 0;for (double price : productPrices) {total price;}return total;} }当业务发展需要根据不同客户类型比如普通客户、VIP 客户和促销活动比如满减、折扣来调整订单总金额的计算规则时就需要直接修改 calculateTotalAmount 方法的代码。例如VIP 客户享受 9 折优惠满 100 减 20 的促销活动代码修改如下 public class Order {private double[] productPrices;private String customerType;public Order(double[] productPrices, String customerType) {this.productPrices productPrices;this.customerType customerType;}// 计算订单总金额的方法修改后变得复杂public double calculateTotalAmount() {double total 0;for (double price : productPrices) {total price;}if (VIP.equals(customerType)) {total * 0.9;}if (total 100) {total - 20;}return total;} }这种直接修改的方式随着业务规则的不断增加和变化代码会变得越来越复杂和难以维护修改一处可能会影响到其他部分的逻辑增加了出错的风险。 抽象工厂 我们发现订单类和计算金额的修改原因、修改速率不一样根据SRP原则利用抽象工厂模式把他抽出来如下。 // 订单类 public class Order {private double[] productPrices;private String customerType;public Order(double[] productPrices, String customerType) {this.productPrices productPrices;this.customerType customerType;}// 计算总金额依赖工厂类public double calculateTotalAmount() {return OrderTotalCalculatorFactory.calculateTotal(productPrices, customerType);} }// 订单总金额计算工厂类 public class OrderTotalCalculatorFactory {public static double calculateTotal(double[] productPrices, String customerType) {if (Regular.equals(customerType)) {double total 0;for (double price : productPrices) {total price;}return total;} else if (VIP.equals(customerType)) {double total 0;for (double price : productPrices) {total price;}total * 0.9;return total;} else {double total 0;for (double price : productPrices) {total price;}if (total 100) {total - 20;}return total;}} }引入抽象类 如果再有新的计费类型时我们需要修改OrderTotalCalculatorFactory 再添加一个if-else然后在里面写代码违反了OCP原则。所以我们不把具体代码写到OrderTotalCalculatorFactory 里而是再抽一层可以是接口也可以不是。这样不是说没有改动但是改动点小了。是扩展本类而不是修改 但是为了专业把相同的抽出来作为上层我们没有理由不写成接口。 此外如果再想加一个过期时间校验功能我们的优惠、会员等都是有时间的先校验然后再计算金额。这个时候就体现出接口的好处来了。 这样就是所谓的DIP了由原来的order订单依赖于金额计算现在加了一个接口二者都依赖于这个接口了。 // 订单总金额计算策略接口 public interface OrderTotalCalculator {double calculateTotal(double[] productPrices); }// 普通客户计算策略实现类 public class RegularCustomerCalculator implements OrderTotalCalculator {Overridepublic double calculateTotal(double[] productPrices) {double total 0;for (double price : productPrices) {total price;}return total;} }// VIP客户计算策略实现类 public class VIPCustomerCalculator implements OrderTotalCalculator {Overridepublic double calculateTotal(double[] productPrices) {double total 0;for (double price : productPrices) {total price;}total * 0.9;return total;} }// 工厂类 public class OrderTotalCalculatorFactory {public static OrderTotalCalculator createCalculator(String customerType) {if (Regular.equals(customerType)) {return new RegularCustomerCalculator();} else if (VIP.equals(customerType)) {return new VIPCustomerCalculator();} // 目前只有这两种情况后续可扩展return null;} }// 组合优于继承 public class Order {private double[] productPrices;private String customerType;private OrderTotalCalculator calculator;public Order(double[] productPrices, String customerType) {this.productPrices productPrices;this.customerType customerType;this.calculator OrderTotalCalculatorFactory.createCalculator(customerType);}public double calculateTotalAmount() {return calculator.calculateTotal(productPrices);} }
http://www.dnsts.com.cn/news/92964.html

相关文章:

  • 深圳网站建设黄浦网络 骗钱vivo浏览器下载
  • 网站开发完整的解决方案做网站电话说辞
  • 教育网站开发价钱网站后台密码忘记了怎么办
  • NET网站开发程序员招聘wordpress手机 不适应
  • 免费网站制作开发单位网站建设自查报告范文
  • 做仓单的网站作品集展示的网站源码
  • 东莞网站建设 牛魔网以图搜图百度识图
  • 网站被收录后又被提出了如何让网站 被百度k
  • 怎么免费建个人网站食品网站开发的背景
  • 十堰网站建设_网站制作_软件开发_网店培训 优易网站备案在哪里查询
  • 企业网站开发公司住房城乡建设网站查询
  • 搭建一个网站搜索指数查询
  • 南宁网站建设公司利润搜不到自己的网站
  • 网站广告图怎么做巫山集团网站建设
  • 网站建设齐齐哈尔蔡甸建设局网站
  • jira confluence做网站网站后台怎么更新
  • 做网站域名怎么选有利于seo东莞网红打卡地
  • 企业不建立网站吗百度收录
  • 住房和城建设网站wordpress输入网址采集单个网页
  • 网站开发需要的所有技术戒赌网站怎么做
  • 网站建设公司汕头的html标签 wordpress
  • 深圳网站优化网站网站建设洪塔
  • 做网站用什么语言开发上海网站设计专注乐云seo
  • 常州在线制作网站wordpress版块插件
  • 辽宁城乡建设集团成立网站玉溪市住房城乡建设局网站
  • 做个公司网站要多少钱大数据营销优缺点
  • 网站右下角代码武冈企业建站
  • 临海商用高端网站设计新感觉建站宝塔本地装wordpress
  • 网站建设与管理教学视频企业策划书内容
  • 站长之家html模板深圳企业学校网站建设