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

官方网站建设意义网站开发指什么

官方网站建设意义,网站开发指什么,西安大雁塔简介,软件技术主修课程Java策略模式 摘要实现范例 策略模式的重心不是如何实现算法#xff0c;而是如何组织、调用这些算法#xff0c;从而让程序结构更加灵活#xff0c;具有更好的维护性和扩展性。 策略模式属于行为型模式 摘要 1. 意图 针对一组算法#xff0c;将每一个算法封装到具有共… Java策略模式 摘要实现范例 策略模式的重心不是如何实现算法而是如何组织、调用这些算法从而让程序结构更加灵活具有更好的维护性和扩展性。 策略模式属于行为型模式 摘要 1. 意图 针对一组算法将每一个算法封装到具有共同接口的独立的类中从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 2. 主要解决 它将对象和行为分开将行为定义为一个行为接口和具体的行为实现说白了策略模式就是用来解决多个if判断的情况的。 3. 何时使用 需要在运行时动态地改变对象的行为有多个算法可选客户端需要根据不同的需要选择不同的算法一个类定义了多种行为并且这些行为在类的方法中以多个条件语句的形式出现。这时候可以将每种条件分支转化为一个独立的策略 4. 如何解决 将这些通用算法抽象出来 5. 关键代码 策略接口、具体策略类和环境类 6. 应用实例 做一批相机分配中心需要根据相机的类型去找到不同的工人做相机电商购物的优惠计算 7. 优点 松耦合策略模式将不同的策略封装在独立的类中与上下文对象解耦增加了代码的灵活性和可维护性。易于扩展可以通过添加新的策略类来扩展系统的功能无需修改现有代码。符合开闭原则对于新的策略无需修改上下文对象只需要实现新的策略接口即可。 8. 缺点 类数量增多每个具体策略都需要一个独立的类如果策略较多将导致类的数量增加。上层必须知道所有策略类上层模块必须知道有哪些策略并选择合适的策略进行使用这与迪米特法则是相违背的我只是想使用了一个策略我凭什么就要了解这个策略呢那要你的封装类还有什么 意义这是原装策略模式的一个缺点。 9. 使用场景 有多个相似的类,只有行为有差异的情况下,可以考虑使用策略模式.需要在运行时动态切换算法的情况下,可以使用策略模式.一个系统需要在不同时间应用不同的业务规则情况下,可以使用策略模式在一个系统中,有许多类需要根据某种规则进行排序,查找等操作的情况下,可以使用策略模式. 10. 注意事项 如果一个系统的策略多于四个就需要考虑使用混合模式解决策略类膨胀的问题否则日后的系统维护就会成为一个烫手山芋。 实现 Java策略模式通常包括以下三种角色: Context(上下文):是策略模式中的核心类,用来管理具体策略实现类的创建,配置和执行,以及在运行时动态地选择具体的策略实现类.Strategy(策略):是一个接口或抽象类,定义了策略实现类的通用方法和属性,具体策略实现类必须实现这些方法和属性.ConcreteStrategy(具体策略):是策略接口的实现类,根据具体业务需求实现了策略接口定义的方法和属性.可以又多个具体策略实现类,Context类在运行时根据需要动态地选择具体的策略实现类. 范例 1. 支付策略接口(Strategy) Strategy.java package com.demo.gof; public interface PaymentStrategy {/*** 支付** param amount*/void pay(double amount); }2. 微信支付和支付宝支付策略类(ConcreteStrategy) WechatPayment.java package com.demo.gof; public class WechatPayment implements PaymentStrategy {private String username;private String password;public WechatPayment(String username, String password) {this.username username;this.password password;}/*** 支付** param amount*/Overridepublic void pay(double amount) {System.out.println(微信支付: amount 元);} }AliPayment.java package com.demo.gof; public class AliPayment implements PaymentStrategy{private String username;private String password;public AliPayment(String username, String password) {this.username username;this.password password;}/*** 支付** param amount*/Overridepublic void pay(double amount) {System.out.println(支付宝支付: amount 元);} } 3. 购物车类(Context) ShoppingCart.java package com.demo.gof; public class ShoppingCart {private ListItem itemList;private PaymentStrategy paymentStrategy;public ShoppingCart() {itemList new ArrayList();}public void setPaymentStrategy(PaymentStrategy paymentStrategy) {this.paymentStrategy paymentStrategy;}public void addItem(Item item){itemList.add(item);}public void removeItem(Item item){itemList.remove(item);}public double calculateTotal(){return itemList.stream().mapToDouble(Item::getPrice).sum();}public void pay(){paymentStrategy.pay(calculateTotal());} } 4. 商品类 Item.java package com.demo.gof; Data public class Item {private String name;private double price;public Item(String name, double price) {this.name name;this.price price;} } 5. 运行执行策略模式 Demo.java package com.demo.gof; public class Demo {public static void main(String[] args) {ShoppingCart shoppingCart new ShoppingCart();Item item1 new Item(item1,10);Item item2 new Item(item2,10);shoppingCart.addItem(item1);shoppingCart.addItem(item2);shoppingCart.setPaymentStrategy(new AliPayment(aliPayUsername,aliPayPassword));shoppingCart.pay();shoppingCart.setPaymentStrategy(new WechatPayment(wechatUsername,wechatPassword));shoppingCart.pay();} }编译运行以上 Java 范例输出结果如下
http://www.hkea.cn/news/14371270/

相关文章:

  • 基于wordpress的网站网站建设用电脑
  • 杨凌开发建设局网站全国水利建设市场信用信息平台门户网站
  • 设计素材网站名称搭建域名服务器
  • 郑州企业网站建设费用商贸公司名字推荐
  • 400电话 网站建设万州那家做网站
  • 优猫券网站怎么做个人备案的网站可以做淘宝客吗
  • 网站建设排名软件做网站企业经营范围
  • 网页设计免费网站推荐东莞石龙网站建设莞网站制作
  • 迅速提高网站排名株洲做网站的
  • 网站首页模板管理百度指数排行榜哪里看
  • 长春建站费用万维网站域名
  • 门户网站建设好如何维护软件定制开发系统
  • 顺义的网站建设公司seo短视频网页入口营销
  • 山东省建设公司网站惠州做网站的公司有哪些
  • 织梦网站漏洞三个字的公司名称大气
  • 网站建设评选打分网络品牌营销推广
  • 陕西企业营销型网站建设宝塔网站搭建教程
  • 网站换新域名装修设计网站排行
  • 做电商讲师课程的网站wordpress子目录无法访问后台
  • 丰台区网站建设公司最早做网页的公司
  • 人和做网站如何制作微信公众号文章
  • 如何做企业的网站陕西专业网站建设哪家好
  • 中国商标注册网官方网站地方门户网站系统建设方案
  • 福永外贸网站建设黄页88网站推广怎么样
  • 企业网站建设比较调查怎么写吕梁建站公司
  • 推荐一个做照片书的网站国内著名平面设计师的个人网站
  • 企业发展历程网站wordpress文章多个分类显示不出来
  • 免费个人网站怎么做服装公司网站
  • thinkphp做双语网站wordpress 下载插件xydown
  • 下载浙江平安建设信息系统网站深圳龙岗做网站的