怎么去写接口,详情内容,

我了个擦啊啊啊 2020-06-30 02:38:39
工作久了,用过3种运动控制卡,平时写了3个不同的类,用哪个调用哪个,现在想写一个接口把这个3个卡统一在一起,请教大佬们怎么写
...全文
3478 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gezhuyi 2020-07-01
  • 打赏
  • 举报
回复
定义接口 Ikzk 定义kzkbase类 定义kzkhelper类,每个厂家的控制卡继承base,和定义的接口,helper对外调用,base 实现共有方法,接口 用于反射 用于依赖注入。
wanghui0380 2020-07-01
  • 打赏
  • 举报
回复
微软说接口我已经给你做了
namespace Microsoft.Extensions.Hosting
{
    //
    // 摘要:
    //     Defines methods for objects that are managed by the host.
    public interface IHostedService
    {
        //
        // 摘要:
        //     Triggered when the application host is ready to start the service.
        //
        // 参数:
        //   cancellationToken:
        //     Indicates that the start process has been aborted.
        Task StartAsync(CancellationToken cancellationToken);
        //
        // 摘要:
        //     Triggered when the application host is performing a graceful shutdown.
        //
        // 参数:
        //   cancellationToken:
        //     Indicates that the shutdown process should no longer be graceful.
        Task StopAsync(CancellationToken cancellationToken);
    }
}
你要的描述也就只是这个,我有3个插件(service),系统主机(host)启动会根据配置加载他们(host.Builer host.start),他们自己启动会需要自己的参数(Iconfig 和 构造注入)
wanghui0380 2020-07-01
  • 打赏
  • 举报
回复
引用 7 楼 我了个擦啊啊啊 的回复:
[quote=引用 3 楼 以专业开发人员为伍 的回复:] [quote=引用 楼主 我了个擦啊啊啊 的回复:]现在想写一个接口把这个3个卡统一在一起
看不明白这个“统一在一起”具体是什么意思?[/quote] 3种卡运用时功能都是一样的,启动前都需要初始化,然后执行回零,还有运动等功能,区别就是调用这些功能需要的参数有一点差异,我现在想写一个统一的大类,程序里只调用这个大类的方法,分别去启用这个三个卡中的任意一个,以后在新增卡,我另外拓展,主程序不改[/quote] 如果是这个,我想你去稍微研究一下的net core的host(主机模式)就会有启发。他其实就是按你这个想法做的 所有的“外挂”都是service,至于这些service自己需要的参数都是config节点。 所有的service都有start,stop
正怒月神 2020-07-01
  • 打赏
  • 举报
回复
引用 7 楼 我了个擦啊啊啊 的回复:
[quote=引用 3 楼 以专业开发人员为伍 的回复:] [quote=引用 楼主 我了个擦啊啊啊 的回复:]现在想写一个接口把这个3个卡统一在一起
看不明白这个“统一在一起”具体是什么意思?[/quote] 3种卡运用时功能都是一样的,启动前都需要初始化,然后执行回零,还有运动等功能,区别就是调用这些功能需要的参数有一点差异,我现在想写一个统一的大类,程序里只调用这个大类的方法,分别去启用这个三个卡中的任意一个,以后在新增卡,我另外拓展,主程序不改[/quote] 那就很简单。 你直接抽象出接口。然后3个实现类就好了。 该用哪个就用哪个。 以后再有新的,就在实现一个类。
  • 打赏
  • 举报
回复
引用 3 楼 以专业开发人员为伍 的回复:
[quote=引用 楼主 我了个擦啊啊啊 的回复:]现在想写一个接口把这个3个卡统一在一起
看不明白这个“统一在一起”具体是什么意思?[/quote] 3种卡运用时功能都是一样的,启动前都需要初始化,然后执行回零,还有运动等功能,区别就是调用这些功能需要的参数有一点差异,我现在想写一个统一的大类,程序里只调用这个大类的方法,分别去启用这个三个卡中的任意一个,以后在新增卡,我另外拓展,主程序不改
八爻老骥 2020-06-30
  • 打赏
  • 举报
回复
引用 3 楼 以专业开发人员为伍 的回复:
[quote=引用 楼主 我了个擦啊啊啊 的回复:]现在想写一个接口把这个3个卡统一在一起


看不明白这个“统一在一起”具体是什么意思?[/quote]
工厂吧,写配置文件做反射倒是可行的。
wanghui0380 2020-06-30
  • 打赏
  • 举报
回复
当然这样写系统,就需要像以前留数据库结构表文档一样,你需要留一份Topic 列表了,否则后面的人可就完全不知道消息从哪里来,到哪里去了 ps:所以现在一般这么设计的时候,也会同时写一个注册中心。去配置node和topic,去展示topic的发布和订阅图,没这个玩意,你要走了,后面接手的那真是叫天天不应的状态了
wanghui0380 2020-06-30
  • 打赏
  • 举报
回复
来看一个ros机器人的典型图 假设你说的3种运动卡就是右边的node2,node4,node5。 那么我们并不是要做什么以前那种设计接口,也不需要像你说的那样,用谁就引用谁 我们并不直接引用,我只是在启动的时候根据配置文件,把各个node注册到系统,然后统一启动他。他们之间没有谁调用谁。所以我们不是要启动vs,引用他,然后生成他。而他之间的调用只通过消息,而不通过代码直接call 过程也许难理解,不过玩net core的人瞬间明白 他就是那个host.Build的过程那些node其实就是netcore里面的 IService, 我们只是根据配置生成IserviceCollection,让 host.RunAsAsyn() 统一启动他
  • 打赏
  • 举报
回复
引用 楼主 我了个擦啊啊啊 的回复:
现在想写一个接口把这个3个卡统一在一起


看不明白这个“统一在一起”具体是什么意思?
jhdxhj 2020-06-30
  • 打赏
  • 举报
回复
接口,你是webservice接口还是webapi接口,提供的接口在之前类的基础上进行一层封装就OK
wanghui0380 2020-06-30
  • 打赏
  • 举报
回复
我个人现在不写接口,只写消息。因为要适配的东西太多,不好标准化。干脆直接独立对消息总线发消息,你用那个模块,那个模块自己去总线订阅他要处理的消息 参考Ros机器人系统。 -----这个系统也是一样的处理方式。各部分不直接通讯,都是总线消息控制

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧