gpt4 book ai didi

.net - 在 .NET (F#) 中使用可替换的后端实现来实现 API

转载 作者:行者123 更新时间:2023-12-05 01:16:14 27 4
gpt4 key购买 nike

我试图了解如何在 .NET 世界中实现可替换组件或服务提供者接口(interface)。我怀疑我只是不知道要搜索的适当术语。

具体来说,我正在玩Matrix具有不同后端的类。在最简单的情况下,矩阵提供了两个参数的 get 和 set 方法以及一个构造函数。实现对最终用户来说并不重要。例如,根据矩阵的大小,矩阵可能由内存中的数组、文件或分布式键值存储支持。我想隐藏后端实现并允许第三方提供新的后端实现。

例如,从 IronPython 调用的理想 API 可能类似于

a = matrix(data = 0, rows = 1000, cols = 10, backend = 'file://test.txt')
a[100, 2] = 1
print a[100, 2]

我应该阅读什么来理解这类问题的模式?

我正在玩 F# 和 IronPython,但不要相信这个问题是特定于任何特定的 .Net 语言的。

最佳答案

是的,您可以创建一个接口(interface)IMatrix以及实现它的具体类,如下所示:

type IMatrix =
abstract Item : (int * int) -> single with get, set

type ConcreteMatrix (data:single[,])=
interface IMatrix with
member t.Item with get((x,y)) = data.[x,y]
and set((x,y)) value = do data.[x,y] <- value

let printCoordinate (x, y) (matrix : #IMatrix) =
printf "%A" matrix.[x, y]

关于.net - 在 .NET (F#) 中使用可替换的后端实现来实现 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2241164/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com