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

佛山建网站费用wordpress文章如何搬家

佛山建网站费用,wordpress文章如何搬家,怎么看商标有没有注册,vue.js做的网站文章目录 1.概念1.1 什么是策略模式1.2 优点与缺点 2.实现方式3. Java 哪些地方用到了策略模式4. Spring 哪些地方用到了策略模式 1.概念 1.1 什么是策略模式 它允许用户在不修改现有对象的代码的情况下向对象添加新的功能;这种模式是通过创建一个包含该对象的包装…

文章目录

  • 1.概念
    • 1.1 什么是策略模式
    • 1.2 优点与缺点
  • 2.实现方式
  • 3. Java 哪些地方用到了策略模式
  • 4. Spring 哪些地方用到了策略模式

1.概念

1.1 什么是策略模式

它允许用户在不修改现有对象的代码的情况下向对象添加新的功能;这种模式是通过创建一个包含该对象的包装对象来实现的,从而扩展该对象的功能。

1.2 优点与缺点

优点:
1.灵活性:策略模式提供了在运行时选择算法或行为的能力,使得算法或行为的变化独立于使用它们的客户。
2.扩展性:通过添加新的策略类,可以很容易地扩展系统的行为,符合开闭原则。
3.简化了代码:策略模式将算法封装在单独的类中,从而简化了上下文类,使得功能划分更加清晰。
4.避免使用多重条件选择语句:策略模式可以帮助避免复杂的条件语句,如多重if-else或switch语句,使代码更加优雅。
5.可维护性:由于算法被封装在不同的类中,因此代码更容易维护和理解。

缺点:
1.增加了系统的复杂性:策略模式引入了更多的类,这可能会增加系统的复杂性,尤其是在策略数量较多时。
2.客户端必须知道不同的策略:客户端必须知道可用的策略,并决定使用哪一个,这可能会导致客户端代码的复杂性增加。
3.策略之间的依赖性:如果策略之间有依赖关系,可能会导致系统变得更加复杂。
4.性能问题:如果策略对象的创建和销毁开销较大,可能会对性能产生影响,尤其是在频繁切换策略的情况下。
5.管理策略类:随着策略数量的增加,管理这些策略类可能会变得困难,尤其是在大型系统中。

2.实现方式

① 定义策略接口

public interface Strategy {void execute();
}

②创建实现了这个接口的具体策略类

public class ConcreteStrategyA implements Strategy {@Overridepublic void execute() {System.out.println("Executing Strategy A");}
}public class ConcreteStrategyB implements Strategy {@Overridepublic void execute() {System.out.println("Executing Strategy B");}
}

③ 创建一个上下文类,它持有一个策略对象的引用,并通过这个引用调用执行方法

public class Context {private Strategy strategy;public Context(Strategy strategy) {this.strategy = strategy;}public void setStrategy(Strategy strategy) {this.strategy = strategy;}public void executeStrategy() {strategy.execute();}
}

④ 在客户端代码中使用上下文类和不同的策略

public class Client {public static void main(String[] args) {Context context = new Context(new ConcreteStrategyA());context.executeStrategy(); // 输出: Executing Strategy Acontext.setStrategy(new ConcreteStrategyB());context.executeStrategy(); // 输出: Executing Strategy B}
}

3. Java 哪些地方用到了策略模式

排序算法:Java的Collections.sort()方法可以接受一个Comparator接口的实例,这个接口就是一个策略模式的应用。你可以为不同的排序需求提供不同的Comparator实现。
Java I/O:Java的I/O类库中,InputStream、OutputStream、Reader和Writer等抽象类可以看作是策略模式的上下文,而它们各自的实现类(如FileInputStream、BufferedInputStream等)则充当具体的策略。
JDBC:JDBC(Java Database Connectivity)使用策略模式来允许不同的数据库驱动实现。DriverManager类根据URL来选择合适的Driver实现,而不同的Driver实现则对应不同的数据库连接策略。
命令行处理:例如Apache Commons CLI或其他命令行处理库,它们允许你定义不同的命令行选项处理策略。
设计模式:许多设计模式的实现都可能用到策略模式,比如工厂模式、命令模式等。
算法框架:在算法框架中,策略模式可以用来根据不同的输入或条件选择不同的算法实现。
业务规则引擎:在业务规则引擎中,策略模式可以用来根据不同的业务规则选择不同的处理策略。
策略模式在Spring框架中的应用:Spring框架中的许多地方都使用了策略模式,例如,事务管理、数据源选择、消息中间件的连接等。

4. Spring 哪些地方用到了策略模式

事务管理:Spring的事务管理支持多种事务管理策略,如编程式事务管理(使用TransactionTemplate)和声明式事务管理(使用@Transactional注解)。这些不同的策略可以通过配置来切换,而不需要修改业务代码。
数据源选择:在Spring中,你可以配置多个数据源,并通过TransactionManager和DataSource接口来切换不同的数据源实现。
消息中间件的连接:Spring支持多种消息中间件,如JMS、RabbitMQ、Kafka等。通过策略模式,Spring允许你根据需要选择不同的消息中间件连接策略。
AOP(面向切面编程):Spring AOP允许你定义切面(Aspect)和通知(Advice),这些可以看作是策略模式的具体策略。你可以根据需要选择不同的通知类型(如前置通知、后置通知等)来增强目标对象的行为。
事件驱动编程:Spring的事件驱动编程模型允许你定义不同的事件监听器(Listener),这些监听器可以看作是处理不同事件的策略。
资源访问:Spring的Resource接口允许你以统一的方式访问不同类型的资源(如文件系统、类路径、URL等),而具体的Resource实现则充当不同的访问策略。
Bean的作用域:Spring允许你为Bean定义不同的作用域(如单例、原型、请求、会话等),这些作用域可以看作是不同的生命周期管理策略。
数据绑定:Spring的WebDataBinder允许你为不同的数据绑定场景定义不同的数据转换和格式化策略。

http://www.yayakq.cn/news/341126/

相关文章:

  • 学习网站推荐公众号推广合作平台
  • 漂亮的网站单页怎样做网站检索数据分析
  • 上海市中学生典型事例网站网络营销 企业网站
  • 网站建设方案百度文库上海推广有限公司
  • asp sql做学生信息网站建e全景app
  • 大连专业做网站设计类公司网站
  • 杭州网站制作工作室企业形象成品网站
  • 手机移动网站建设简答题网站建设步骤
  • 红塔网站制作网站建设对标行业分析
  • 网站后台管理系统图片商城网站有哪些
  • 做视频网站 带宽淘宝联盟怎么样做网站
  • dede网站百度统计怎么做京东联盟怎么做网站
  • 免费的网站淘宝网页制作代码
  • 零食网站页面模板南通网站建设有限公司
  • 深圳做营销网站的公司简介360免费建站网页链接
  • 网站后台密码谷歌收录查询
  • 做高端品牌生产商的网站上海人才市场档案存放中心
  • 专业的网站建设服务商服装类的网站建设
  • 广州网站设计开发如何在拼多多开网店
  • 江门 网站设计excel导入wordpress
  • 怎样一个域名做两个网站网站建设的市场定位
  • 网站开发实用技术第2版文档陕西建设执业注册中心网站
  • 静态网站中切换图片怎么做企业宣传片制作公司排名
  • 津南网站建设深圳家装设计公司排名榜
  • 网站设计 做鼠标效果wordpress标签页无效链接
  • 设计感强的网站网络广告营销的特点
  • 自定义内容网站做网站发布网
  • 做淘宝客网站需要多大的数据库爱做电影网站
  • 网站开发属于什么岗位seo网站优化培训怎么做
  • 晒豆网站建设网页制作三剑客下载