【发布时间】:2011-04-15 01:02:16
【问题描述】:
以下是我尝试使用 F# 实现工厂方法设计模式,同时尝试使其更具功能(即不是直接的 OO 实现)。以下是我想出的:
type ISkateBoard = abstract Model : unit -> string
type SkateBoard =
| Roskopp
| Peters
interface ISkateBoard
with member this.Model() =
match this with
| Roskopp-> "Rob Roskopp..."
| Peters -> "Duane Peters..."
let assemble model : ISkateBoard =
match model with
| "Roskopp" -> Roskopp :> ISkateBoard
| "Peters" -> Peters :> ISkateBoard
| _ -> failwith "no such skateboard model.."
let SkateBoardFactory assemble model = assemble model
let SantaCruzFactory = SkateBoardFactory assemble
这是工厂方法设计模式的适当实现吗?该模式是否用于现实世界的 F# 应用程序?
【问题讨论】:
-
+1 为你肩上的猴子。
-
@Juliet 谢谢。一定要爱猴子:)。
-
滑板厂+1!
-
@krookedking +1 为被骗的国王
标签: design-patterns f#