Pro*_*ool 3 oop f# functional-programming scala
所以,为了补充我从这个问题中学到的东西,我问:
这让我想到我是否应该使用带方法或记录(?)和方法的类型.例如,这是我可能做出的典型类型:
(* User Interaction Start *)
type UserInteraction public() =
member public x.CreatePassword(originalPassword) =
if String.IsNullOrEmpty originalPassword then
raise(new ArgumentException "CreatePassword: password is null or empty")
let hashUtility = new HashUtility();
hashUtility.CreateHash originalPassword
Run Code Online (Sandbox Code Playgroud)
我可以看到的问题是,由于允许,UserInteraction类型中的某些内容可能是可变的.现在有记录类型,据我所知,它们保证是不可变的.
是否更好地设计一个模块,其中只有方法可以接收或返回记录类型,甚至可以通过方法链接更进一步?
您可能想要阅读何时使用类,联合,记录和结构 [MSDN](页面底部).您似乎对记录有一些不正确的假设.例如,他们可以像类一样拥有可变字段.重要的区别是继承,模式匹配,构造函数,隐藏成员,相等以及复制和更新表达式.
刚刚注意到该页面上的一个小错误:记录实际上可以实现接口.
另一个可能有用的部分:记录和类之间的差异 [MSDN](页面底部)