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

android源码下载网站网站建设经验总结

android源码下载网站,网站建设经验总结,设计最简单的企业网站,应用制作app软件目录 一.场景 1.1场景 2.2 何时使用 2.3个人理解 二. 业务场景练习 2.1业务: 2.2具体实现 2.3思路 三.总结 3.1策略模式的特点#xff1a; 3.2策略模式优点 3.3策略模式缺点 一.场景 1.1场景 许多相关的类仅仅是行为有异#xff0c;也就是说业务代码需要根据场景不…目录 一.场景 1.1场景 2.2 何时使用 2.3个人理解 二. 业务场景练习 2.1业务: 2.2具体实现 2.3思路  三.总结 3.1策略模式的特点 3.2策略模式优点 3.3策略模式缺点 一.场景 1.1场景 许多相关的类仅仅是行为有异也就是说业务代码需要根据场景不同切换不同的实现逻辑一个类定义了多种行为并且这些行为在类的操作中以多个条件语句的形式出现也就是说代码中存在大量 if else 逻辑判断 2.2 何时使用 当一件任务可以使用不同的方式来完成就可以使用策略模式  2.3个人理解 策略模式简单理解应该是对于同一个业务功能在不同的场景需求下提供不同的实现逻辑来达到动态切换业务算法满足不同场景的目的。同时它也有另外的好处即优化代码结构使其脱离大量逻辑判断对外只提供 Context上下文让算法与实际业务代码解耦对使用者屏蔽底层实现逻辑。 对于我们根据不同的场景, 会定义应对不同场景相应的方法, 然而这些方法就是我们的策略,  策略模式 UML类图如下: 每个策略通过不同业务条件, 找到相应的算法类或逻辑类 , 最终得到想要的结果  二. 业务场景练习 2.1业务: 我们出行会根据不同的交通方式制定不同的出行方式比如自驾、大巴车、高铁、飞机而每出行方式就是一个定义一个策略。 2.2具体实现 首先定义一个出行接口 /*** 描述:出行策略接口** author QU* date 2023/8/10*/ public interface TripModeStrategy {void tripModeStrategy(); } 策略一自驾出行 /*** 描述: 自驾出行** author QU* date 2023/8/10*/ public class CarTripStrategy implements TripModeStrategy {Overridepublic void tripModeStrategy() {System.out.println(自驾出行,花费200元,用时6个小时);} } 策略二大巴出行 /*** 描述: 公交车出行** author QU* date 2023/8/10*/ public class BusTripStrategy implements TripModeStrategy {Overridepublic void tripModeStrategy() {System.out.println(公交车出行,花费100元,用时8个小时);} }策略三高铁出行 /*** 描述: 高铁出行** author QU* date 2023/8/10*/ public class HighSpeedTripStrategy implements TripModeStrategy {Overridepublic void tripModeStrategy() {System.out.println(高铁出行,花费500元,用时2.5小时);} }策略四飞机出行 /*** 描述: 飞机出行** author QU* date 2023/8/10*/ public class AircraftTripStrategy implements TripModeStrategy {Overridepublic void tripModeStrategy() {System.out.println(飞机出行,花费1000元,用时1个小时);} } 制定策略输出类 package strategy.trip;/*** 描述: 策略输出** author QU* date 2023/8/10*/ public class TripMode {//注入策略private TripModeStrategy tripModeStrategy;TripMode(TripModeStrategy tripModeStrategy){this.tripModeStrategytripModeStrategy;}//输出具体策略public void executeTripStrategy(){tripModeStrategy.tripModeStrategy();} } 制定策略工厂 /*** 描述: 策略工厂** author QU* date 2023/8/10*/ public class TripStrategyFactory {/*** 定义map存放所有策略.*/private static final MapString,TripModeStrategy TRIP_MODE_STRATEGY_MAPnew HashMap();/*** 使用静态方法来加载策略到map中*/static{TRIP_MODE_STRATEGY_MAP.put(TripEnum.CAR,new CarTripStrategy());TRIP_MODE_STRATEGY_MAP.put(TripEnum.BUS,new BusTripStrategy());TRIP_MODE_STRATEGY_MAP.put(TripEnum.HIGH_SPEED,new HighSpeedTripStrategy());TRIP_MODE_STRATEGY_MAP.put(TripEnum.AIRCRAFT,new AircraftTripStrategy());}/*** 使用静态方法通过模拟客户端传接的类型参数** param key 策略类型客户端用户选择的出行方式* return 具体某条策略*/public static TripModeStrategy tripModeStrategy(String key){TripModeStrategy tripModeStrategy TRIP_MODE_STRATEGY_MAP.get(key);return tripModeStrategy;} 制定出行类型出行常量也可以认为我们wed或实际开发项目中的客户端选择的一条策略用户选择的出行方式 /*** 描述: 出行常量** author QU* date 2023/8/10*/ public class TripEnum {public static final String CARcar;public static final String BUSbus;public static final String HIGH_SPEEDhigh_speed;public static final String AIRCRAFTaircraft; } 测试类 /*** 描述: 测试出行方式** author QU* date 2023/8/10*/ public class TripTest {public static void main(String[] args) {//自驾TripModeStrategy tripModeStrategy TripStrategyFactory.tripModeStrategy(TripEnum.CAR);//大巴车//tripModeStrategy TripStrategyFactory.tripModeStrategy(TripEnum.BUS);//高铁//tripModeStrategy TripStrategyFactory.tripModeStrategy(TripEnum.HIGH_SPEED);//飞机tripModeStrategy TripStrategyFactory.tripModeStrategy(TripEnum.AIRCRAFT);TripMode tripModenew TripMode(tripModeStrategy);tripMode.executeTripStrategy();} } 运行结果这里根据程序运行选择就近原则最后取变量值预测是策略四飞机出行 结果 2.3思路  首先根据业务制定出行策略TripModeStrategy 制定策略工厂将策略装进我们的静态代码块在工程启动已执行到map中静态方法等待调用tripModeStrategyString key制定策略输出类通过客户端选择出行方式去策略工厂中获取静态方法输出策略 三.总结 3.1策略模式的特点 高内聚低耦合可扩展遵循ocp原则开放封闭原则 3.2策略模式优点 1.策略模式的功能就是通过抽象、封装来定义一系列的算法使得这些算法可以相互替换所以为这些算法定义一个公共的接口以约束这些算法的功能实现。如果这些算法具有公共的功能可以将接口变为抽象类将公共功能放到抽象父类里面。 2.策略模式的一系列算法是可以相互替换的、是平等的写在一起就是if-else组织结构如果算法实现里又有条件语句就构成了多重条件语句可以用策略模式避免这样的多重条件语句。 3.扩展性更好在策略模式中扩展策略实现非常的容易只要新增一个策略实现类然后在使用策略实现的地方使用这个新的策略实现就好了。 3.3策略模式缺点 1.客户端必须了解所有的策略清楚它们的不同 如果由客户端来决定使用何种算法那客户端必须知道所有的策略清楚各个策略的功能和不同这样才能做出正确的选择但是这暴露了策略的具体实现。 2.增加了对象的数量 由于策略模式将每个具体的算法都单独封装为一个策略类如果可选的策略有很多的话那对象的数量也会很多。 3.只适合偏平的算法结构 由于策略模式的各个策略实现是平等的关系可相互替换实际上就构成了一个扁平的算法结构。即一个策略接口下面有多个平等的策略实现多个策略实现是兄弟关系并且运行时只能有一个算法被使用。这就限制了算法的使用层级且不能被嵌套。
http://www.hkea.cn/news/14271651/

相关文章:

  • 门户网站建设目标短网址在线生成免费
  • 网站开发区企业网站模板库
  • 南宁seo网站建设佛山html5网站建设
  • 成品网站怎样建设诸暨东莞网站建设公司
  • 做网站需要学jq吗内蒙古建设厅官网站
  • 一个空间两个网站外贸稳中提质韧性强
  • 木门网站模板付费查看下载wordpress虚拟资源
  • 丹阳网站建设机构网站后台 搜索
  • 33岁改行做网站建设wordpress 语言选择
  • 河北涿州建设局网站国内高清视频素材网站推荐
  • 苏州网站建设公司排名模拟网站平台怎么做
  • 可以做视频推广的网站吗温州合作网站
  • 制作网站可以赚钱吗品牌网站建设设计
  • 软件分享网站做问卷有哪些网站
  • 深圳 网站开发广告设计公司营业执照
  • 在线crm管理系统seo外链网站大全
  • wordpress视频站代码地方宣传网站建设的必要性
  • asp网站搭建工具公司网站翻译工作怎么做
  • 移动 开发 网站建设株洲市民健康提醒
  • 白云营销型网站建设先备案 做网站
  • 校园二手市场网站开发的意义国家对地理信息网站建设的重视
  • 专门做处理货的网站品牌策划的五个步骤
  • 建筑设计网站擅自使用他人产品做网站宣传
  • 天津河西做网站贵吗WordPress微信如何赚钱
  • 源码网站怎么搭建网站开发项目swot分析
  • 网站域名后缀代表什么意思天津河西做网站哪家好
  • 文化传播公司做网站宣传好吗江门建设银行网站
  • 布料市场做哪个网站好网站首页适合vue做吗
  • 体育php网站源码网站公司利润
  • 付运费送东西的网站怎么做6广告策划