一个关于Interface和Class定义的问题

明天好,会的 2003-10-19 05:42:14
通过对com的初步学习,我觉得Interface在只是把一些功能输出来了,但是Interface的设计和面向对象的设计思想好像有点不相融合.本人就在这里遇到了问题,苦苦挣扎,还望哪位老师能够教我
...全文
149 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldsjlzy 2003-10-22
  • 打赏
  • 举报
回复
如果你项目够大,并且那4个类有点逻辑意义的话,何不在组件级别上再建一接口并在其下定义不同接口方法来实现不同情况对前面4个类的调用。
也就是说4个类也定义成接口但对最终用户透明,然后再用一接口将其封装供最终用户调用。
明天好,会的 2003-10-22
  • 打赏
  • 举报
回复
谢谢李老师的提示,以后小弟还有问题还望多多指教
ldsjlzy 2003-10-21
  • 打赏
  • 举报
回复
在最开始,我就直接将这4个类定义为接口,但是发现这样的封装程度好像不够,在扎帐的时候写得代码比较多.

你在接口继承类中实现的代码为什么会比定义一个接口实现的代码要多?
明天好,会的 2003-10-21
  • 打赏
  • 举报
回复
我的设计前提是通过接口方法,将操作逻辑封装了, 但是这个操作逻辑可能要使用到几个类.还望楼上小李指教
明天好,会的 2003-10-21
  • 打赏
  • 举报
回复
楼上的各位老师说得都对,在代码的实现上,interface确实对应一个class,这个也是我感到头疼的地方,我觉得那个class只是为了实现interface,好像和类的设计有点撤不上关系,对于这个问题的提出我也是在实际运用到interface之后才遇到的,在之前,我的想法和楼上的各位一样.
我现在讲我遇到的实际问题给大家讲一下.
我在设计一个能够实现财务上扎帐的接口,由于先前设计的原因,要设计出这个功能,我必须使用到至少4个类,但是又不是所有的情况我都要使用到这4各类,不同的情况,使用的类也会不同.
在最开始,我就直接将这4个类定义为接口,但是发现这样的封装程度好像不够,在扎帐的时候写得代码比较多.
后来我就定义了一个名为Izz的接口,将不同的情况定义为不同的接口方法.这里其实就是用那个接口类来调用先前的那4个类.
这时我就遇到了问题,接口到底是按照类的原则来定义还是按照功能模块来定义.
这几天我一直在考虑这个问题,请老师们不吝赐教,谢谢
zming 2003-10-19
  • 打赏
  • 举报
回复

对,不理解Interface与Class的关系,就学不会面向对象。

举个不是很恰当的例子:

虎 是一个Interface
东北虎 是符合虎这个Interface的一个Class
华南虎 是符合虎这个Interface的另一个Class

Interface指明了某一些事物共性的行为,它不关心实现的细节(对外屏蔽了实现细节)。
Class则重点对Interface的行为进行实现。
ldsjlzy 2003-10-19
  • 打赏
  • 举报
回复
com的接口就是一切.正是面象对象设计的升华.
feeboby 2003-10-19
  • 打赏
  • 举报
回复
interface太经典了,好好补补
Analyst 2003-10-19
  • 打赏
  • 举报
回复
简直搞笑,interface是面向对象的精髓,怎么可能不相容。
课程基础概述本门课程,大喵将会打着大家从零打造一款属于大家自己的 CLI命令行脚手架工具,本课程主要面向新手同学,对命令行工具开发,前端工具开发感兴趣的同学,可以通过本门课程学习到如何使用Node.JS开发一款适配自身项目特色的脚手架命令行工具。并且也会带着大家推送自己开发完成的CLI工具到NPM线上仓库,供所有人下载安装使用。整个课程,大喵会详细讲解所需要依赖的第三方模块包的具体使用,让同学们可以举一反三开发具备自身特色的CLI工具,最终大喵会运用到前面所讲解的基础内容,独立自主开发一个具备 damiao [ add | delete | list | init ] 四种子命令的CLI脚手架工具。CLI命令行工具命令行工具(Cmmand Line Interface)简称cli,顾名思义就是在命令行终端中使用的工具。我们常用的 git 、npm、vim 等都是 cli 工具,比如我们可以通过 git clone 等命令简单把远程代码复制到本地。在目前前端工程大流行的环境下,vue-cli、create-reate-app、angular-cli 等等方便快捷的命令行脚手架工具诞生,极大的提升了我们的开发效率与质量,我们可以通过这些脚手架工具在本地快速构建我们的开发项目。 课程目录结构1、CLI课程介绍   2、CLI课程纲领和讲师介绍3、CLI课程内容概述    4、CLI命令行工具及场景应用5、CLI课程准备工具和技术   6、CLI课程收获和收益  7、CLI课程实战案例介绍   8、npm CLI 命令行工具发展现状9、创建第一个命令行自定义命令   10、process.argv 接收命令行参数11、commander 工具使用介绍一   12、commander 工具使用介绍二13、inquirer 工具使用介绍   14、ora 加载工具使用介绍15、chalk 颜色工具使用介绍   16、download-git-repo 仓库工具介绍17、创建脚手架命令   18、创建命令可执行文件19、damiao add 命令行指令开发   20、damiao add 模板录入校验21、damiao delete 命令行指令开发   22、damiao list 命令行指令开发23、damiao init 初始化项目指令开发   24、damiao init 指令参数输入校验25、damiao 命令行指令测试.mp4  26、创建npm个人账号及发布npm仓库27、全局安装脚手架工具

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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