当前位置: 首页 > 面试题库 >

Java战略模式的真实例子

祁默
2023-03-14
问题内容

我一直在阅读有关OCP主体以及如何使用策略模式来实现此目的的信息。

我打算尝试向几个人解释这一点,但是我能想到的唯一示例是根据“订单”的状态使用不同的验证类。

我已经在线阅读了几篇文章,但这些文章通常不会描述使用该策略的真实原因,例如生成报告/账单/验证等。

您是否认为现实世界中有常见的战略模式示例?


问题答案:

你必须加密文件。

对于小文件,可以使用“内存中”策略,其中读取完整的文件并将其保存在内存中(例如,对于<1 gb的文件)

对于大文件,可以使用另一种策略,其中部分文件在内存中读取,部分加密结果存储在tmp文件中。

对于同一任务,这可能是两种不同的策略。

客户端代码看起来相同:

 File file = getFile();
 Cipher c = CipherFactory.getCipher( file.size() );
 c.performAction();



// implementations:
interface  Cipher  {
     public void performAction();
}

class InMemoryCipherStrategy implements Cipher { 
         public void performAction() {
             // load in byte[] ....
         }
}

class SwaptToDiskCipher implements Cipher { 
         public void performAction() {
             // swapt partial results to file.
         }

}

     Cipher c = CipherFactory.getCipher( file.size() );

将为密码返回正确的策略实例。



 类似资料:
  • 为每个任务实例化具体策略,并在不是时实现“虚拟”策略(如下所示)。代码中到处都有奇怪的可为空的和变量,在本例中... 在不计划任务的情况下具有IPlanningStrategy变量,并且只有当任务“提升”为时才使用具体策略实例化。 备选方案(1)应该是这样的: 现在我看到了不同的**非常重要的**问题。除了algorithm(当然实现该算法的所有任务都共享)之外,我的每个具体策略类还包含附加参数,

  • 问题内容: 假设我使用Spring,我有以下策略… 接口 首要策略 下一个策略… 上下文… 现在说这个上下文是通过mvc控制器访问的,例如… 上下文应该是一个组成部分吗?当我这样做时,出现一条错误消息说loadOnStartup,正如您所期望的,该策略可能是一个nonUniqueBean。是否所有的bean都需要像上面一样的组件,或者我的注释不正确? 我最大的疑问确实是您可以在Spring MVC

  • 在策略模式中,可以在运行时更改类行为或其算法。 这种类型的设计模式属于行为模式。 在策略模式中,我们创建表示各种策略的对象和根据其策略对象行为不同的上下文对象。 策略对象更改上下文对象的执行算法。 实现 (Implementation) 我们将创建一个Strategy接口,用于定义实现Strategy接口的操作和具体策略类。 Context是一个使用策略的类。 StrategyPatternDem

  • 我正在研究一个推荐系统。这将是一个Android应用程序,用户将输入他们的偏好,并在这些偏好的基础上,其他匹配的配置文件将显示给该用户。我正在从用户那里获取数据,并将其存储在Firebase中。 这些是数值,为了向用户显示匹配的配置文件,我使用两种算法来计算用户之间的相似性计数:和 由于这将是一个实时应用程序,所以这种方法是完全错误的,我想实现策略设计模式,其中算法可以在运行时决定,而不是在编译时

  • 问题内容: 我有一个使用Spring框架以Java 1.5开发的Web应用程序。应用程序包含“仪表盘”,这些仪表盘是简单的页面,在其中可以重新组合一堆信息,并且用户可以在其中修改某些状态。经理们希望我在数据库中为这三个仪表板添加一个日志记录系统。每个仪表板都有不同的信息,但是应该通过日期和用户登录来跟踪日志。 我想做的是实现这样的Strategy模式: Appcontext.xml: 因此,在此解

  • 本文向大家介绍PHP实现的策略模式示例,包括了PHP实现的策略模式示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现的策略模式。分享给大家供大家参考,具体如下: 个人觉得设计模式只有在实际应用中才能够慢慢的去熟悉,到最后做到心中有模式,事事有模式,哈哈 例如:一个电商首页,可以根据登陆用户的性别不同显示不同的内容,比如广告和商品类别。 传统方法:在程序内部使用多个if,else