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

网站的功能与建设方案p图做网站兼职

网站的功能与建设方案,p图做网站兼职,如何做网站站内搜索,wordpress 文章首页地址作为一名程序员,你一定遇到或亲自写过这样的代码。有人将它形象的形容为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://www.yayakq.cn/news/517348/

相关文章:

  • 抚顺网站设计外链购买
  • 西宁网站建设公司排行vps wordpress域名
  • ag电子游戏网站开发百汇游戏网站开发商
  • 做网站用什么语言郑州网站模板哪里有
  • 个人网站备案不通过点图片跳到网站怎么做
  • 网站建设越来越便宜百度网站做pc自适应
  • 网站页脚模板阿里云官方网站
  • 网站实名铁威马 Nas 做网站
  • 加氢站个公司好怎么将自己的视频推广出去
  • 网站后台插件下载揭阳网站建设解决方案
  • 品牌网站建设哪家公司好基于html5个人网站设计论文
  • 淮南北京网站建设wordpress 自动安装 插件
  • 做粉丝网站描述电子商务网站建设
  • php网站开发价格北京网站建设 合一
  • 赤峰是住房和城乡建设局网站做网站用的字体
  • 网站建设网络推广代理公司wordpress 标签html
  • 苏州网站推广去苏州聚尚网络高级室内设计网站
  • 旅游网站html模板福建建筑人才网档案关联
  • 邢台哪里有做网站的宁波免费建站
  • 有什么网站可以做logo赚钱教育类手机网站模板下载
  • 做体育设施工程公司的网站中国建设银行网站个人网上银行
  • 浙江省建设项目招投标网站网上发布信息的平台有哪些
  • 做域名不做网站可以吗wordpress admin密码md5
  • 企业网站做的公司网站推广方法主要有哪几种
  • 安徽宿州住房与建设网站php 网站共享变量
  • 网站拒绝了您的访问东莞头条最近15天新闻
  • 网站能带来什么公司注册网上怎样注册
  • 合肥网站建设设计外包做嗳啪啪 网站
  • 兼职网站高中生在家可做南宁建站
  • 建设微网站项目报告婚庆公司网站制作