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

萍乡网站建设哪家好中国制造网怎么注册

萍乡网站建设哪家好,中国制造网怎么注册,顺德网站建设收费标准,58同城网招聘找工作建筑工程作为一名程序员,你一定遇到或亲自写过这样的代码。有人将它形象的形容为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/372626/

相关文章:

  • 如果在阿里云上做自己的网站猎头公司前十名有哪些
  • 360网站开发wordpress 输出数组
  • 网站底部悬浮wordpress基础服务器
  • 制作一个网站的需要多少钱学院门户网站建设自评
  • 欧美风的网站设计wordpress 酷播
  • 湖北企业网站建设哪家好东莞市招聘信息最新招聘
  • 珠海的门户网站有哪些网站建设基本流程是什么
  • 网站做造价温州电力建设有限公司网站
  • 网站设计主要包含3个方面锦州seo推广
  • 汕头网站制作多少钱建设环保网站查询系统
  • 服务器 网站建设网站的软件
  • 湖北随州住房和城乡建设部网站北京有限公司公章图片
  • 赣州门户网站做苗木生意上什么网站
  • 建设网站征集图片的通知单页 网站 模板
  • wordpress建立的网站net网站开发教程
  • 货物运输东莞网站建设环球资源网是卖什么的
  • 徐州营销型网站建设wordpress输入密码注册
  • 网站域名如何从代理商那里转出来tp框架做网站的优点
  • 用wordpress建立网站天助可以搜索别人网站
  • 厦门做百度推广的网站免费行情网站在线
  • 专业的高端网站设计公司做网站的去哪找私活
  • 西安网站建设开发wordpress 重置密码
  • 高效网站建设与维护岗位职责淘宝联盟如何建设个人网站
  • 做信息网站的盈利方式有哪些门户网站做
  • 请人做网站注意事项提供微网站建设
  • 公司网上注册在哪个网站如何看一个网站是否做推广
  • 深入网站开发和运维有没有专业做艺术品的网站
  • 做云购网站今天的新闻联播内容
  • 网站建设服务网站建设开源wordpress小程序源码
  • 大连专业手机自适应网站制作学3d建模学费一般多少