//密钥对生成接口
interface IKeyPairGenerable{
KeyPair create();
}
class KeyPair{
}
class DesKeyPairGenerator implements IKeyPairGenerable{
}
class IdeaKeyPairGenerator implements IKeyPairGenerable{
}
class RsaKeyPairGenerator implements IKeyPairGenerable{
}
class KeyPairManager{
private IKeyPairGenerable generator;
private List keyPairList = new Arraylist();
public void setGenerator(IKeyPairGenerable generator){
this.generator = generator;
}
public KeyPair create(){
KeyPair keyPair = null;
if(null != generator){
keyPair = generator.create();
keyPairList.add(keyPair);
}
return keyPair;
}
}
Client:
IKeyPairGenerable desGenerator = new DesKeyPairGenerator();
IKeyPairGenerable rsaGenerator = new RsaKeyPairGenerator();
IKeyPairGenerable ideaGenerator = new IdeaKeyPairGenerator();
KeyPairManager manager = new KeyPairManager();
//使用 DES 算法生成密钥
manager.setGenerator(desGenerator);
KeyPair keyPair = manager.create();
//使用 RSA 算法生成密钥
manager.setGenerator(rsaGenerator);
KeyPair keyPair = manager.create();
可以看出,KeyPairManager 仅仅依赖于接口 IKeyPairGeneratble, 改变密钥对生成算法不改变 KeyPairManager 类。
策略模式一般用来封装算法的不同实现。
分享到:
相关推荐
Java设计模式——策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。策略模式定义了一族算法,并将每一个算法封装起来,使它们可以互相替换。这种模式让算法的变化独立于使用算法的客户。 在Java中,...
《Java设计模式》是刘伟教授的一本关于设计模式的教材,主要面向高等学校的学生和对Java编程有深入兴趣的开发者。设计模式是软件工程中的一种重要思想,它封装了在特定场景下的问题解决方案,可以提高代码的可读性、...
这份资源主要关注GoF(Gang of Four,即《设计模式:可复用面向对象软件的基础》一书的四位作者)提出的23种设计模式,并提供了C++语言的实现代码,是提升C++程序员设计能力的高级参考资料。 设计模式是经过时间和...
- **策略模式模板.zip**:这个文件可能是博主提供的一个通用策略模式模板,包含了一个基本的策略模式框架,供读者学习和参考。 通过阅读这些资源,开发者可以深入理解策略模式,并学会如何在自己的Java项目中有效地...
JavaScript设计模式是由张容铭编著的一本关于JavaScript编程领域的重要参考书籍,主要探讨了如何在JavaScript编程中应用设计模式来提升代码质量和可维护性。设计模式是软件工程中的最佳实践,它们是针对常见问题的...
常见的设计模式可以分为三大类:创建型模式(如单例模式、工厂方法模式)、结构型模式(如适配器模式、装饰器模式)和行为型模式(如观察者模式、策略模式)。每种模式都有其特定的应用场景和解决策略,熟悉这些模式...
模拟试题参考答案及评分标准则更注重对读者综合能力的检验,可能包含选择题、填空题、简答题和编程题等形式,旨在测试读者是否能灵活运用设计模式解决实际问题。这些问题可能涉及如何在不同场景下选择合适的设计模式...
"设计模式代码-仅供参考"这个主题,意味着我们将探讨如何通过代码实现这些设计模式。 在给定的标签“源码”和“工具”中,我们可以推测这个压缩包可能包含了用于理解和学习设计模式的实际代码示例。源码是理解设计...
Erich Gamma等人的著作《设计模式:可复用面向对象软件的基础》进一步推动了设计模式的发展,这本书成为了面向对象设计模式的经典参考。 设计模式通常包括三个主要部分:问题、解决方案和后果。问题描述了何时应该...
### GOF设计模式详解 #### 一、设计模式概述 **设计模式**(Design Patterns)是软件工程中的一个重要概念,它是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。本章节将从多个角度对设计模式...
在C#中,常见的设计模式包括单例模式(确保类只有一个实例)、工厂模式(提供创建对象的接口)、观察者模式(定义对象间的一对多依赖关系)、装饰器模式(动态地给对象添加新的行为)和策略模式(定义一系列算法,并...
《C#经典设计模式及代码示例》是针对C#开发者深入理解并应用设计模式的一份宝贵资源。设计模式是软件工程中经过实践验证的、解决常见问题的有效模板,能够帮助程序员提高代码的可读性、可维护性和复用性。这本书结合...
2. **重用性**:通过设计模式可以快速解决问题,提高开发效率。 3. **灵活性**:设计模式鼓励开发者采用更灵活的方式组织代码,便于后期扩展和维护。 ### GOF设计模式 1. **种类**:共有23种设计模式被记录在著名...
总之,GOF设计模式和设计模式精解是软件工程师的宝贵参考资料,无论你是初学者还是经验丰富的开发者,都应该熟悉和掌握这些模式,以便在项目中灵活运用,提高代码质量和可维护性。通过深入学习这些设计模式,不仅...
设计模式参考《大话设计模式》 工厂简单模式 创造型模式 工厂方法模式 抽象工厂模式 原型模式 建造者模式 单例模式 结构型模式 队列模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 行为模式(类行为...
本资源“参考文档-23种JAVA设计模式和15种J2EE设计模式.zip”包含了Java语言和J2EE平台下广泛使用的设计模式,旨在帮助开发者提升软件设计能力,实现更加高效、灵活和可维护的代码。 首先,我们关注Java的23种经典...