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

dw怎么做购物网站学校网站建设电话

dw怎么做购物网站,学校网站建设电话,域名和服务器多少钱,利用js做简单的网站前言 好记性不如烂笔头。 问题: 现在有一个数字与字母的映射表,且有以下规则: 映射表: 数字 字母 3 A 7 B 9 C 规则: 1.碰到当前数字时,使用字母替换,例如,3-> A 2.碰到当前数…

前言

好记性不如烂笔头。


问题:
现在有一个数字与字母的映射表,且有以下规则:

映射表:
数字 字母
3 A
7 B
9 C

规则:
1.碰到当前数字时,使用字母替换,例如,3-> A
2.碰到当前数字的倍数时,使用字母替换, 例如:6->A
3.碰到多个数字的倍数时,使用多个对应的字母替代,例如:15 -> AB,21->AC
请根据映射表和规则,给出0-100之间的转换结果,提示:不要直接在for循环中使用if判断,尽可能的使用设计模式。

解决方法:策略模式
策略模式(Strategy Pattern)是一种行为设计模式,它使你能够在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。

在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象更改 context 对象的执行算法。

策略模式通常涉及三个角色:

Context(上下文):这个类用一个 Strategy(策略)对象来配置其行为。Context 维护一个对 Strategy 对象的引用,可调用其接口来执行所需策略。

Strategy(策略):这是一个接口或抽象类,定义了所有支持的算法的公共接口。Context 使用这个接口来调用具体的策略实现。

ConcreteStrategy(具体策略):实现了 Strategy 接口的具体类。每个具体策略类都提供了不同的算法或行为。

代码实例:
一、定义策略接口

package com.service;/***@Description  定义策略接口*@Author yingluo*@Date 2024-2-23**/
public interface NumberToLetterStrategy {public String convert(int number);
}

二、各个数字实现类

package com.service.impl;import com.service.NumberToLetterStrategy;/*** Description: 数字3的映射规则创建实现类* Author:yingluo* Date:2024/2/23**/
public class ThreeStrategy implements NumberToLetterStrategy {@Overridepublic String convert(int number) {if(number == 3 || number % 3 == 0){return "A";}return "";}
}
package com.service.impl;import com.service.NumberToLetterStrategy;/*** Description: 数字7的映射规则创建实现类* Author:yingluo* Date:2024/2/23**/
public class SevenStrategy implements NumberToLetterStrategy {@Overridepublic String convert(int number) {if(number == 7 || number % 7 == 0){return "B";}return "";}
}
package com.service.impl;import com.service.NumberToLetterStrategy;/*** Description: 数字9的映射规则创建实现类* Author:yingluo* Date:2024/2/23**/
public class NineStrategy implements NumberToLetterStrategy {@Overridepublic String convert(int number) {if(number == 9 || number % 9 == 0){return "C";}return "";}
}

三、使用策略对象来执行映射

package com.control;import com.service.NumberToLetterStrategy;
import com.service.impl.NineStrategy;
import com.service.impl.SevenStrategy;
import com.service.impl.ThreeStrategy;import java.util.HashMap;
import java.util.Map;/*** Description: 使用策略对象来执行映射* Author:yingluo* Date:2024/2/23**/
public class NumberToLetterContext {private Map<Integer, NumberToLetterStrategy> strategies;public NumberToLetterContext(){strategies = new HashMap<>();strategies.put(3, new ThreeStrategy());strategies.put(7, new SevenStrategy());strategies.put(9, new NineStrategy());}public String convert(int number){StringBuffer result = new StringBuffer();for (NumberToLetterStrategy strategy : strategies.values()){result.append(strategy.convert(number));}return result.toString();}
}

四、测试类

package com;import com.control.NumberToLetterContext;/*** Description: main方法测试类* Author:yingluo* Date:2024/2/23**/
public class Test {public static void main(String[] args) {NumberToLetterContext context = new NumberToLetterContext();for (int i=0 ; i<=100 ; i++){System.out.println(i+"->"+context.convert(i));}}
}
http://www.yayakq.cn/news/305973/

相关文章:

  • 漯河网站建设漯河秦皇岛做网站汉狮网络
  • 设置什么引擎营销是用户主导的网络营销方式固原地网站seo
  • 网站做的最好的公司个人网站是商业的吗
  • 连云港网站seo如何向google提交网站
  • 建设厅注册中心网站微信制作企业网站
  • 企业网站建设计划wp建站系统
  • 网站策划运营方案网站建设咨询服务合同
  • 网站开发模板网站前端开发培训西安
  • wordpress网站静态页面生成佛山建站专家
  • wordpress适合视频网站吗招标网公告
  • 做网站用什么写重庆网站设计制作价格
  • 建设部人才网站制作网站网络科技公司
  • 建立一个网站商城需要多久时间WordPress不用缓存插件
  • 建设部网站设计资质查询企业邮箱登录入口126
  • 凡科平台网站怎么建设贵阳设计工作室
  • 海南行指海口网站开发七牛怎么做网站服务器
  • 免费企业网站源码下载淘宝补流量平台
  • 为什么会显示危险网站网页设计公司有哪些岗位
  • 网站被墙怎么做跳转西安网站制作顶
  • 门户网站内容管理系统上海网站营销怎么样
  • 建网站空间可以不买网站恶意镜像 301
  • 不同性质网站的营销特点一览表中国国家人事人才培训网证书查询
  • 网站建设技术方面论文tikiwiki 与Wordpress
  • 多产品的网站怎么做seo深圳网站建设排名
  • 学视频剪辑大概需要多少钱搜索引擎优化的目标体系包括哪些
  • 怎么在悉尼做网站百度指数免费查询
  • 织梦网站备份几种方法专业的网站建设服务
  • 现在币圈有那些私募网站做的好网站建设与电子商务的教案
  • 个人网站可以做商业吗网站怎么做sem
  • 简洁中文网站模板下载网络监控管理系统