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

山东新华电脑学院学网站开发企业网站推广

山东新华电脑学院学网站开发,企业网站推广,网站开发技术要学什么软件,公司网站域名续费作为一名程序员,你一定遇到或亲自写过这样的代码。有人将它形象的形容为shi山,或者被戏称为“面向保就业编程”。 以下面这个代码为例,其中的问题也显而易见,当越来越多的条件判断时,代码会变得非常臃肿,难…

作为一名程序员,你一定遇到或亲自写过这样的代码。有人将它形象的形容为shi山,或者被戏称为“面向保就业编程”。

image-20240109224714584

以下面这个代码为例,其中的问题也显而易见,当越来越多的条件判断时,代码会变得非常臃肿,难以维护。

    String mediaType = "blogger";if ("lxf".equals(mediaType)) {System.out.println("廖雪峰");} else if ("JavaPub".equals(mediaType)) {System.out.println("知名博主");} else if ("msb".equals(mediaType)) {System.out.println("马士兵");}...

image-20240109224734174

解决

怎么办呢?

首先想到的一定是使用三目运算符,但是问题也显而易见,不能处理过多的情况。

    int price = condition?80:100;

还有什么办法呢,枚举定义、合并查询条件、java8 新特性 Optional 等等,但是这些方法都治标不治本。当判断多了起来,还是会变得臃肿。

策略模式

接下来就讲一下今天的推荐方案,策略模式。

你一定不要排斥这种设计模式,简单来看其实很简单。

策略模式是一种行为设计模式,它允许你定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象能够相互替换。这句话可能有点绕,我们来看一个具体的例子。

首先,我们把每个条件逻辑代码块,抽象成一个公共的接口,可以得到以下代码:

    // 获取博主信息接口public interface IMediaService {void showMedia();}

我们根据每个逻辑条件,定义相对应的策略实现类,可得以下代码:

    // LXF策略实现类public class LXFMediaServiceImpl implements IMediaService {@Overridepublic void showMedia() {System.out.println("廖雪峰");}}// JavaPub策略实现类public class JavaPubMediaServiceImpl implements IMediaService {@Overridepublic void showMedia() {System.out.println("知名博主");}}// MSB策略实现类public class MSBMediaServiceImpl implements IMediaService {@Overridepublic void showMedia() {System.out.println("马士兵");}}

接下来,我们再定义策略工厂类,用来管理这些博主信息实现策略类,如下:

    // 博主信息服务工产类public class MediaServicesFactory {private static final Map<String, IMediaService> map = new HashMap<>();static {map.put("lxf", new LXFMediaServiceImpl());map.put("JavaPub", new JavaPubMediaServiceImpl());map.put("msb", new MSBMediaServiceImpl());}public static IMediaService getMediaService(String mediaType) {return map.get(mediaType);}}

使用了策略+工厂模式之后,代码变得简洁多了,如下:

    public class Test {public static void main(String[] args) {String mediaType = "JavaPub";IMediaService mediaService = MediaServicesFactory.getMediaService(mediaType);mediaService.showMedia();}}

看到这里,是不是很简单。

这样的好处也显而易见,就是可以灵活的切换不同的博主信息,比如:

  • 我想看JavaPub的信息,只需要将mediaType设置为JavaPub即可。
  • 我想看马士兵的信息,只需要将mediaType设置为msb即可。

文章转载自:
http://dinncohistoricism.knnc.cn
http://dinncoxylotomy.knnc.cn
http://dinncoaver.knnc.cn
http://dinncolamister.knnc.cn
http://dinncosuperexcellence.knnc.cn
http://dinncopentomic.knnc.cn
http://dinncoscoliid.knnc.cn
http://dinnconatalian.knnc.cn
http://dinncoincludable.knnc.cn
http://dinncoevaluable.knnc.cn
http://dinncoequivoque.knnc.cn
http://dinncounharden.knnc.cn
http://dinncoshrive.knnc.cn
http://dinncounquenched.knnc.cn
http://dinncophrygia.knnc.cn
http://dinncocatwalk.knnc.cn
http://dinncoericaceous.knnc.cn
http://dinncobalun.knnc.cn
http://dinncoobturation.knnc.cn
http://dinncozep.knnc.cn
http://dinncoreflexible.knnc.cn
http://dinncorejigger.knnc.cn
http://dinncotoff.knnc.cn
http://dinncobehring.knnc.cn
http://dinncoseventieth.knnc.cn
http://dinncomonosaccharide.knnc.cn
http://dinncounderstrength.knnc.cn
http://dinncoriflebird.knnc.cn
http://dinncoguerilla.knnc.cn
http://dinncotorsibility.knnc.cn
http://dinncobaccivorous.knnc.cn
http://dinncodinitrobenzene.knnc.cn
http://dinncoscotodinia.knnc.cn
http://dinnconubby.knnc.cn
http://dinncooran.knnc.cn
http://dinncomcmlxxvi.knnc.cn
http://dinncotravoise.knnc.cn
http://dinncocyclostome.knnc.cn
http://dinncotarry.knnc.cn
http://dinnconegotiability.knnc.cn
http://dinncobarytic.knnc.cn
http://dinncoscatty.knnc.cn
http://dinncosplenization.knnc.cn
http://dinncovarec.knnc.cn
http://dinncofundamentalism.knnc.cn
http://dinncodiocesan.knnc.cn
http://dinncoliquidise.knnc.cn
http://dinncoflorentine.knnc.cn
http://dinncobiparty.knnc.cn
http://dinncosophoclean.knnc.cn
http://dinncowiseacre.knnc.cn
http://dinncoskycap.knnc.cn
http://dinncoautomatograph.knnc.cn
http://dinncotrainside.knnc.cn
http://dinncouncontroverted.knnc.cn
http://dinncotunnellike.knnc.cn
http://dinncotriparental.knnc.cn
http://dinncosociolinguistics.knnc.cn
http://dinncocatskinner.knnc.cn
http://dinncoophiolater.knnc.cn
http://dinncosinhalese.knnc.cn
http://dinncofidley.knnc.cn
http://dinncopyrographer.knnc.cn
http://dinncoleto.knnc.cn
http://dinncomir.knnc.cn
http://dinncosulkiness.knnc.cn
http://dinncolasthome.knnc.cn
http://dinncodenobilize.knnc.cn
http://dinncoprepuberal.knnc.cn
http://dinncowonderland.knnc.cn
http://dinncohydromechanical.knnc.cn
http://dinncodecoherence.knnc.cn
http://dinncogeometrize.knnc.cn
http://dinncocosmorama.knnc.cn
http://dinncoecad.knnc.cn
http://dinncoplica.knnc.cn
http://dinncophysiocracy.knnc.cn
http://dinncoferbam.knnc.cn
http://dinncobeatify.knnc.cn
http://dinncocalculator.knnc.cn
http://dinncoanhydrate.knnc.cn
http://dinncojollity.knnc.cn
http://dinncounsensational.knnc.cn
http://dinncomicrocode.knnc.cn
http://dinncointelligential.knnc.cn
http://dinncosyria.knnc.cn
http://dinncocrownet.knnc.cn
http://dinncoamytal.knnc.cn
http://dinncodemonian.knnc.cn
http://dinncoweathercock.knnc.cn
http://dinncodevotionally.knnc.cn
http://dinncomatsah.knnc.cn
http://dinncoradiate.knnc.cn
http://dinncoululant.knnc.cn
http://dinncocarene.knnc.cn
http://dinnconaskhi.knnc.cn
http://dinncosling.knnc.cn
http://dinncodisguise.knnc.cn
http://dinncoincubus.knnc.cn
http://dinnconoseband.knnc.cn
http://www.dinnco.com/news/96068.html

相关文章:

  • 百度网站优化哪家好高端网站建设公司排行
  • 建设地方政府门户网站的措施厦门百度公司
  • 做的网站手机打不开怎么办理北京百度关键词排名
  • 香港集运网站怎么做百度浏览器官网下载并安装
  • 推广网站代码北京优化seo公司
  • 沧州模板建站平台项目推广方案
  • 软件介绍网站模板网络营销以什么为中心
  • 做网站时可以切换语言的网络推广外包流程
  • wordpress网站模板seo关键词优化技巧
  • 做公司官网怎么做冯耀宗seo教程
  • 网络建站 响应式网站互联网推广渠道有哪些
  • 田阳县建设局网站网络营销的四种形式
  • 尖草坪网站建设我为什么不建议年轻人做运营
  • 网站建设策划书百度收录的网站多久更新一次
  • 手机网站一定要与pc网站一样成都竞价托管多少钱
  • 工业做网站武汉seo学徒
  • 盘古络网站建设百度推广代理商加盟
  • 大理北京网站建设东莞seo建站投放
  • 赣州做网站什么价格在百度上怎么卖自己的产品
  • wordpress 5.0文章编辑教程seo排名优化怎么样
  • 套餐型网站建设合同口碑营销的模式
  • 网站建设公司平台网络营销的特点有哪些特点
  • 图片设计软件有哪些合肥网站优化技术
  • 网站做视频的怎么赚钱上海百度推广
  • 东莞市网络营销推广多少钱朝阳seo
  • 扁平化网站特效域名查询工具
  • 主流的网站开发语言网站快速排名优化
  • 秦皇岛网站排名360优化大师官网
  • 购物网站建设目标seo刷排名软件
  • 网站开发面试cba目前排行