设计模式快速参考-策略模式

xiaoxiao2022-06-14  45

//密钥对生成接口 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 类。     

    策略模式一般用来封装算法的不同实现。

转载请注明原文地址: https://www.6miu.com/read-4938406.html

最新回复(0)