【发布时间】:2017-09-30 20:13:38
【问题描述】:
继承依赖
类型 A 将类型 B 的值存储在属性中
类型 B 继承自类型 A
我们将考虑一个 UI 控件层次结构,其中每个控件都属于顶级“表单”,而表单本身就是一个控件。
作者通过参数化类解决了这个问题:
[<AbstractClass>]
type Control<'Form>(name) =
member this.Name = name
abstract Form : 'Form
type Form(name) =
inherit Control<Form>(name)
override this.Form = this
type Button(name,form) =
inherit Control<Form>(name)
override this.Form = form
let form = new Form("form")
let button = new Button("button",form)
但是我怎样才能在函数式方法中重新设计:“我们根本不会使用继承。相反,我们会结合参数化使用组合”?
【问题讨论】:
标签: .net oop inheritance f# functional-programming