我设想的接口

 

现在c#的接口只是一个签名,也就是签名一样就可以用不同的实现。

但是我认为这个接口模式还不是理想的模式,我认为接口应该是一个规则,而不只是一个签名。也就是要满足特定规则的实现,才是符合该接口的。

规则包括对数据的定义,输入输出的关系等。从实现角度,就是接口签名外,增加代码测试功能。也就是,任何一个实现,都应该符合接口的签名(语法),同时通过它的测试(语意)。

为何我有这个想法,因为大多数情况下,单单签名相同就认为是一个实现,这种约束太低了,反而实用价值不大。

比如一个功能组件,建立的目的不是为了满足某一个功能吗?但是你其中一个实现却只是实现了一个接口签名,虽然能够套上去,但是组合起来完全不是你想要的功能,甚至让你的数据流变得乱七八糟,毫无意义。

比如是一个增幅器组件,把进入的int流增大,出来也是int流,光服从签名你可以进去的是大的数,出来是小的数,但是不符合你的语意,你的目的是增大,而不是减小。因此只有增加测试后的、添加语意限制后的接口的实现,才是满足你工作需求的。对进出的数进行扩大性判断,不符合语意就报错。

我认为这种接口,比单纯的签名式接口,更加有实用价值。

posted @   诺贝尔  阅读(260)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示