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

校园超市网站开发背景老域名购买

校园超市网站开发背景,老域名购买,谷歌seo是什么职业,标题滚动的网站文章目录 引言策略模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用计算示例代码地址 引言 设想你正在玩一个策略游戏,每一个决策都会导致不同的游戏结局。同样地,在软件开发中,我们常常需要根据不同的场景或条件选择不同…

文章目录

  • 引言
  • 策略模式简介
    • 定义与用途
    • 实现方式
  • 使用场景
  • 优势与劣势
  • 在Spring框架中的应用
  • 计算示例
  • 代码地址

引言

设想你正在玩一个策略游戏,每一个决策都会导致不同的游戏结局。同样地,在软件开发中,我们常常需要根据不同的场景或条件选择不同的算法或业务逻辑。硬编码所有可能的选项不仅会导致代码冗长,还会使得未来的改动变得异常困难。策略模式提供了一种方法,使得算法可以在运行时被动态选择,这样一来,我们就可以根据当前的需求灵活地替换算法,提高了代码的可维护性和扩展性。

策略模式简介

定义与用途

策略模式(Strategy Pattern)是一种行为型设计模式,它定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

实现方式

实现策略模式通常涉及定义策略接口,编写一系列实现此接口的具体策略类,并通过一个上下文类来使用这些策略。
这种模式涉及到三个角色:

  • 上下文(Context):持有一个策略类的引用,用来动态设置具体策略类。
  • 策略接口(Strategy):定义所有支持的算法的公共接口。
  • 具体策略(Concrete Strategy):实现策略接口的类,提供具体的算法实现。

使用场景

策略模式适用于以下场景:

  • 当你有许多类似的类,但它们的行为有所不同时。
  • 当你想让客户端知晓算法或对象的使用细节时。
  • 当一个类定义了多种行为,而且这些行为在这个类的操作中以多个条件语句的形式出现时。

例如:

  • 支付方式选择:在线购物平台支持多种支付方式,如信用卡、PayPal或比特币。策略模式允许用户选择最适合的支付策略。
  • 数据压缩工具:一款软件可能支持不同的数据压缩算法,如ZIP、RAR或7z。用户可以根据需要选择最合适的压缩策略。
  • 路由算法:导航软件中,根据当前交通状况选择最快、最短或避开拥堵的路线。

优势与劣势

  • 优势
    • 策略模式提供了管理相关的算法族的办法。
    • 策略模式提供了替换继承的方法来实现多种算法或行为的变化。
    • 策略模式可以提供相同行为的不同实现。
  • 劣势
    • 客户端必须了解不同的策略。
    • 策略模式和工厂模式结合时,代码可能变得更复杂。

在Spring框架中的应用

在Spring框架中,策略模式被广泛应用于各种场景,利用其灵活性和扩展性来处理不同的业务逻辑和算法选择。以下是Spring框架中体现策略模式概念的一些方面:

1. Spring Security的认证策略
在Spring Security中,策略模式被用来管理不同的认证机制。例如,开发者可以选择或自定义不同的认证策略,如HTTP基本认证、表单认证、LDAP认证等。每种认证方式都是一个策略,而Spring Security提供了一个统一的上下文来管理这些策略,使得可以轻松切换或扩展新的认证方式。2. Spring MVC中的视图解析策略
Spring MVC框架支持多种视图解析策略,以适应不同的视图技术,包括JSP、Thymeleaf和FreeMarker等。通过配置不同的视图解析器,开发者可以根据特定需求选择不同的渲染技术。每个视图解析器都遵循策略接口,Spring MVC通过统一的方式处理视图解析,无需关心具体的解析细节。3. 事务管理策略
Spring提供了灵活的事务管理策略,允许开发者根据需要选择不同的事务管理器。例如,可以根据具体的数据库或JPA提供者选择合适的事务管理器。每种事务管理器都实现了Spring的事务管理接口,为不同的存储选项提供了统一的事务操作方法。4. Spring Core的资源访问策略
Spring框架支持多种方式来访问资源,如通过文件系统、类路径和URL等。Spring提供了一个统一的资源接口,而具体的资源访问方式则通过不同的实现来完成。这允许开发者在不同的环境和需求下灵活选择最适合的资源访问策略。

计算示例

在这里插入图片描述

这个示例演示了策略模式在Java中的实现。策略模式是一种行为设计模式,允许在运行时选择最适合的算法或行为。

步骤 1:创建接口

public interface Strategy {public int doOperation(int num1, int num2);
}

Strategy 接口定义了一个 doOperation 方法,所有具体策略类将实现这个接口,以提供具体的操作。

步骤 2:创建实现相同接口的具体类

public class OperationAdd implements Strategy{@Overridepublic int doOperation(int num1, int num2) {return num1 + num2;}
}

OperationAdd 是一个具体的策略类,实现了加法操作。

public class OperationSubstract implements Strategy{@Overridepublic int doOperation(int num1, int num2) {return num1 - num2;}
}

OperationSubtract 是另一个具体的策略类,实现了减法操作。

public class OperationMultiply implements Strategy{@Overridepublic int doOperation(int num1, int num2) {return num1 * num2;}
}

OperationMultiply 是第三个具体的策略类,实现了乘法操作。

步骤 3:创建上下文类

public class Context {private Strategy strategy;public Context(Strategy strategy){this.strategy = strategy;}public int executeStrategy(int num1, int num2){return strategy.doOperation(num1, num2);}
}

Context 类持有一个策略对象的引用,并允许客户端通过构造器设置其策略。它提供了一个 executeStrategy 方法,用于执行策略并返回结果。

步骤 4:使用上下文来看到策略改变时的行为变化

public class StrategyPatternDemo {public static void main(String[] args) {Context context = new Context(new OperationAdd());        System.out.println("10 + 5 = " + context.executeStrategy(10, 5));context = new Context(new OperationSubstract());        System.out.println("10 - 5 = " + context.executeStrategy(10, 5));context = new Context(new OperationMultiply());        System.out.println("10 * 5 = " + context.executeStrategy(10, 5));}
}

在这里插入图片描述
这个示例演示了策略模式如何使对象的行为可以根据所使用的策略动态改变。通过将每个算法封装在单独的类中,我们可以很容易地增加新的策略或改变现有策略,同时保持算法的独立性和上下文类的一致性。

代码地址

23种设计模式相关代码后续会逐步提交到github上,方便学习,欢迎指点:
代码地址
https://github.com/RuofeiSun/lf-23Pattern

http://www.yidumall.com/news/7533.html

相关文章:

  • ipa文件自己网站怎么做下载秦皇岛seo排名
  • 广州哪里做网站百度招商客服电话
  • 网站建设logo友情链接交换的方法
  • 创建一个网站的最常用的方法是先建立一个文件夹建站系统cms
  • 做网站美工要学什么网站关键词优化软件效果
  • html网站开发工具东莞建设企业网站
  • 网站做的一样侵权吗seo免费诊断电话
  • 成都园林设计公司win7系统优化大师
  • 网站使用流程图微信投放广告多少钱
  • 深圳涂料网站建设整站seo免费咨询
  • seo建站工具商品推广软文范例100字
  • 一个企业做网站推广的优势seo少女
  • 网站建设 doc球队排名榜实时排名
  • 哪些门户网站可以做推广成都排名推广
  • 沧州哪家做网站好深圳全网营销推广平台
  • 软件开发可以做网站么收录网
  • 做网站都需要什么技术seo就业前景如何
  • 杭州建设网站 网站建设公司网络推广营销
  • 合肥响应式网站设计哪里有学计算机培训班
  • 手机网站开发看什么书肇庆网站建设
  • 怎么做短文网站搭建网站要多少钱
  • 长沙做网站推荐百度运营平台
  • 做购物网站需要什么电商seo搜索引擎优化
  • 网站对联广告素材网站怎么快速排名
  • 科技股份公司网站模板成人培训班有哪些课程
  • 旅游网站制作的毕业论文任务国外搜索引擎入口
  • 科技类公司网站设计品牌运营岗位职责
  • 欣赏网站企业网络营销
  • o2o网站建设哪家好长沙做网站的公司有哪些
  • 比特币做空网站百度网站推广价格查询