【发布时间】:2015-11-13 08:13:37
【问题描述】:
我想知道编程中哪个更好
例如,我想在我的项目中使用 Rijndael 和 TripleDES 加密
我有两种方法:
1 。创建一个加密类,里面有4个方法
类加密
- .EncryptWithRijndael()
- .DecryptWithRijndael()
- .EncryptWithTripleDES()
- .DecryptWithTripleDES()
2 。为String类
创建4个Extension Methods- “ABC”.EncryptWithRijndael()
- “XYZ”.EncryptWithTripleDES()
加密只是一个例子,不是我的问题 我想知道什么时候使用新类什么时候使用扩展方法来达到同样的目的?
OOP 中哪个更好? (甚至两者都有),为什么?
【问题讨论】:
-
为它做类。因为它有它自己的逻辑。它的目的是加密和解密
-
新的加密类。使用二进制序列化来加密/解密,就像使用 GZipStream 一样,或者可以考虑from here
-
@Kay Zed ,我对编码没有任何问题,我的问题是选择,当使用新类扩展方法时?
-
扩展方法很难测试,所以也许你应该在它自己的类中实现这个逻辑。我确实使用了扩展方法,但我尝试仅将它们用于转换/
-
我认为扩展方法应该与类有很强的逻辑联系。
IEnumerable的 .net 扩展名就是很好的例子。string对于加密的强链接来说太通用了,即使在一个只关注它的应用程序中也是如此。如果你定义一个包含一个字符串的类,该字符串保存了专门用于加密的用户输入,那么是的。
标签: c# class oop extension-methods