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

s什么网站可以接单做设计赚钱网上商城用wordpress

s什么网站可以接单做设计赚钱,网上商城用wordpress,企业系统管理软件,佛山网站优化先前我们讨论了单一责任原则。 关于实体原则首字母缩写#xff0c; 打开/关闭原则是该行中的第二个原则。 “软件实体#xff08;类#xff0c;模块#xff0c;功能等#xff09;应打开以进行扩展#xff0c;但应关闭以进行修改” 通过采用该原理#xff0c;目标是在不… 先前我们讨论了单一责任原则。 关于实体原则首字母缩写 打开/关闭原则是该行中的第二个原则。 “软件实体类模块功能等应打开以进行扩展但应关闭以进行修改” 通过采用该原理目标是在不修改模块源代码的情况下扩展模块的行为。 想象一下对我们的一种产品应用折扣的情况。 折扣服务将应用指定的折扣并返还​​折扣价。 当前我们的系统只有一种折扣适用于所有成年人。 package com.gkatzioura.solid.ocp;import java.math.BigDecimal; import java.math.RoundingMode;public class Discount {public BigDecimal apply(BigDecimal price) {BigDecimal percent new BigDecimal(0.10);BigDecimal discount price.multiply(percent);return price.subtract(discount.setScale(2, RoundingMode.HALF_UP));} } 折扣服务应将此折扣应用于给出的价格。 package com.gkatzioura.solid.ocp;import java.math.BigDecimal;public class DiscountService {public BigDecimal applyDiscounts(BigDecimal price,Discount discount) {BigDecimal discountPrice price.add(BigDecimal.ZERO);discountPrice discount.apply(discountPrice);return discountPrice;} } 但是我们公司希望为老年人提供折扣因此我们有老年人折扣。 package com.gkatzioura.solid.ocp;import java.math.BigDecimal; import java.math.RoundingMode;public class SeniorDiscount {public BigDecimal apply(BigDecimal price) {BigDecimal percent new BigDecimal(0.20);BigDecimal discount price.multiply(percent);return price.subtract(discount.setScale(2, RoundingMode.HALF_UP));} } 折扣服务使事情变得更加复杂因为该服务必须同时应用成人折扣和老年人折扣。 package com.gkatzioura.solid.ocp;import java.math.BigDecimal;public class DiscountService {public BigDecimal applyDiscounts(BigDecimal price,Discount discount) {BigDecimal discountPrice price.add(BigDecimal.ZERO);discountPrice discount.apply(discountPrice);return discountPrice;}public BigDecimal applySeniorDiscount(BigDecimal price,SeniorDiscount discount) {BigDecimal discountPrice price.add(BigDecimal.ZERO);discountPrice discount.apply(discountPrice);return discountPrice;}} 通过这样做我们修改了折扣服务源代码以扩展其行为。 同样对于销售部门可能提出的每一种不同的折扣折扣服务也会获得额外的方法。 为了遵循开放/封闭原则我们将创建一个折扣界面。 package com.gkatzioura.solid.ocp;import java.math.BigDecimal;public interface Discount {BigDecimal apply(BigDecimal price); } 默认折扣将重命名为AdultDiscount并实现折扣界面。 package com.gkatzioura.solid.ocp;import java.math.BigDecimal; import java.math.RoundingMode;public class AdultDiscount implements Discount {Overridepublic BigDecimal apply(BigDecimal price) {BigDecimal percent new BigDecimal(0.10);BigDecimal discount price.multiply(percent);return price.subtract(discount.setScale(2, RoundingMode.HALF_UP));} } SeniorDiscount也将实现Discount接口。 package com.gkatzioura.solid.ocp;import java.math.BigDecimal; import java.math.RoundingMode;public class SeniorDiscount implements Discount {Overridepublic BigDecimal apply(BigDecimal price) {BigDecimal percent new BigDecimal(0.20);BigDecimal discount price.multiply(percent);return price.subtract(discount.setScale(2, RoundingMode.HALF_UP));} } 最后但并非最不重要的一点是我们将对DiscountService进行重构以便基于Discount接口应用折扣。 package com.gkatzioura.solid.ocp;import java.math.BigDecimal;public class DiscountService {public BigDecimal applyDiscounts(BigDecimal price,Discount[] discounts) {BigDecimal discountPrice price.add(BigDecimal.ZERO);for(Discount discount:discounts) {discountPrice discount.apply(discountPrice);}return discountPrice;} } 通过这种方式折扣服务将能够在不更改其源代码的情况下应用不同的折扣。 可以对折扣应用相同的原则。 假设我们希望在应用折扣时额外应用基本折扣。 package com.gkatzioura.solid.ocp;import java.math.BigDecimal; import java.math.RoundingMode;public abstract class BasicDiscount implements Discount {Overridepublic BigDecimal apply(BigDecimal price) {BigDecimal percent new BigDecimal(0.01);BigDecimal discount price.multiply(percent);return price.subtract(discount.setScale(2, RoundingMode.HALF_UP));} } 通过扩展BasicDiscount类我们可以在BasicDiscount的行为上获得更多折扣并且还可以在不修改BasicDiscount源代码的情况下扩展此行为。 您可以在github上找到源代码。 下一个原理是liskov替换原理。 另外我还编写了备忘单其中包含一些扎实的原则。 在链接中注册以接收它。 翻译自: https://www.javacodegeeks.com/2018/02/solid-principles-open-closed-principle.html
http://www.sadfv.cn/news/224114/

相关文章:

  • 网络营销推广网站网站建设案例公司
  • 如何看别人网站用什么做的南通网站建设入门
  • 历史看过的网站百度搜索引擎下载免费
  • 推广学校网站怎么做wordpress 商城站下载地址
  • 做蛋糕有哪些网站免费企业一键建站网站
  • 一个内部网站如何做外网映射wordpress太臃肿
  • 邢台企业网站建设公司中文 wordpress
  • 做科技申报看什么网站产品宣传推广方案
  • 长春做网站新格公司网站做动态虚线
  • 微信小程序个人网站开发wordpress开头
  • 网站空间需要备案吗商丘企业网站建设服务
  • 网站上的在线答题是怎么做的网站建设考试知识点
  • 做网站及小程序需要会哪些技能建设工程检测中心网站
  • 网站集约化建设网站如何做tag
  • 网站运营教程东莞广告公司有哪些
  • 惠州市住房和城乡建设局网站最新新闻热点事件素材2022
  • 东莞网站建设营销平台的做网站找谁
  • 济南网站建设 行知科技国外网站建设接单
  • 中铁建设集团有几个局正规网络公司关键词排名优化
  • 河南海绵城市建设网站潍坊网站建设价格低
  • 常州做网站价格wordpress 附件管理
  • 灯网一家专门做灯的网站购买网站模板
  • 网站开发 职位描述建设企业官方网站企业登录
  • 青岛seo网站排名做网站需要理解什么
  • 深圳大型论坛网站建设自己做网站视频教程
  • 网站内容建设评估赣州做网站公司哪家好
  • 深圳服务网站建设昆明网站网站建设
  • 省级建设网站风云榜小说排行榜
  • 珠海市住房和城乡建设局网站重庆优化官网服务
  • 泰和网站制作哈尔滨短视频制作公司