我很难让我的团队熟悉基于界面的编程......任何人都有一些建议吗?
为了帮助您的团队熟悉这个想法,最好的方法是展示基于接口的开发可以实现什么,并将其与没有它的同样的事情进行对比.为了让他们"真正"接受并开始理解它们,他们首先需要理解并感受到它所解决的问题的痛苦.他们真的需要有"我厌倦了每次Y发生时必须做X"与自己或团队的对话.我的父亲在我的"形成"岁月里钻进我的一件事是这个小宝石:
无论你多少次告诉过你,在你提出这个问题之前,你永远不会得到答案.
一旦这种对话发生(由个人或团队自行发起),这就是真正的学习可以发生的地方.诀窍是培养一种能够刺激这类问题的环境.如果你能告诉他们他们想要解决接口所解决的问题,那么他们就会自问这个问题.
一个证明接口有用性的好例子如下:
你被指派成为国际数学大会的保镖.你被告知只是让那些人能够正确回答"什么是两加二"的问题.由于这是一项国际活动,自然会有许多人试图进入,说许多不同的语言.首先,你的策略是弄清楚(或猜测)请求入口的人说什么语言,然后找一个说同样的翻译并通过他提问.事实证明这很有效,很快你就会学会快速识别某些语言,现在知道哪些口译员会说这种语言,但是如果有人能说一种你能用的语言,那肯定会很痛苦.t确定直接显示,你必须花费所有时间来弄清楚它是什么,然后找到一个合适的解释器.所以,知道必须有更好的方法,你试着找出一种改进的方法来完成你的工作,那就是你需要的时候.你会得到一大堆纸和一些标记笔,每次有人参加会议时,你都会在一张纸上写下以下内容:
2 + 2 =
瞧,它有效!每个人都快速提供答案.您不必弄清楚该人说的语言或找到翻译.哎呀,你甚至不关心他们说的是什么语言,他们只是回答这个问题,因为他们都懂数学!您没有单独计算每个案例,而是使用了"IKnowMath"界面,每个参加数学会议的人都能理解这个界面.
接口是合同.它只是指定Class 的特定类别(很难绕过这里的单词类)应该作为公共API提供.
界面就像一个类的着装规范.如果一个类实现了一个接口,那么它的公共成员(它对其他类的外观,如果你愿意)将包含接口所声明的内容.