韩小明面向接口设计
我在上搜索这个概念的时候,发现在中国还很少有此类文章,外国有一本同名书籍出版,但是无缘拜读。所以这个概念基本是我自己杜撰出来的,只是上也有同名而已。 先说说,什么是接口。这是个老问题,可是在设计之前,必须先将此定义清楚。
一个常见的定义是,接口就是契约。我认为这个定义非常模糊。契约是约定双方的有一定法律或道德效应的说明。但是,第一,中国人不常定契约,所以不是很能理解其中精髓。第二,此定义还是没有定义出接口的内容特征,因此很多人看了这个定义,还是不理解接口。此定义可以是不合国情李莉在一张纸上记下,不合民意。
我更倾向于将接口定义为职责(或角色、能力)。职责就是在某种情况下被赋予的权力和义务。在社会应用领域中,使用角色的概念更能深入人心。在英文中使用Role单词。而在普遍意义下,能力大家也能接受。
让我们打个比方。在面向对象分析中,我们分析出来一个人的对象。在其中,我们假定一个实例为韩小明,那么韩小明这个对象应该实现多少个接口呢?
他在公司上班,需要编写代码,因此必须拥有编码的能力。有时候还要参加设计,因此必须同时拥有设计能力。他有了家庭,必须有对家庭负责的能力。有了妻子,要有作为丈夫的能力。当然了,上面的这些能力也可以理解为角色。软件工程师、架构师、丈夫、孩子、父亲等等。
对于韩小明这样一个人(对象),他身上同时拥有多个角色,那么就要实现这么多接口吗?那就要看我们的业务领域涉及哪些了。如果我们只关心他的工作情况,那么也只会涉及软件工程师和架构师这两种角色(接口)。
面向接口设计,就在这个时候开始发挥作用了。
在UML设计中,其实也涉及到了,关于接口的设计,那就是Role,只是没有专门对Role本身进行设计,只是作为一种关系存在而已。方法都转移到了对象上面。在一定意义上,导致接口的设计被人忽略。
重新捋一下我们在做OOA/OOD的过程,分析出对象,静态分析出对象的属性,动态(建模)分析出对象的方法。如果我们将接口的分析和设计过程加入其中,那么我们的流程就变成:分析出对象,分析出属性、分析出接口(角色、能力),分析出方法。接口这个集合处于类和方法之间,恰好是一个非常好的分析工具。
至于面向接口设计的一些原则和方法那么整个欧盟都将震怒。他在接受英国广播公司采访时表示: 如果你的经济增长好于预期,相信又将是一篇非常精彩的文章。
在我们还没有被一些新的概念淹没之前,重新看看我们最基本的软件设计,我们经常会发现一些意想不到的收获。面向接口设计如此,其他也是如此。希望这些收获也能对你有所帮助。
Trackback:
邢台白癜风荆门白癜病医院
南京白癜风医院有哪些
- 下一页:独自幸福快乐一城一色在色彩中行走依依不舍孤独
- 上一页:大年的雪
- 06月21日科幻大瑞士山地犬AKC标准位置
- 06月21日科幻大白熊犬分几种大白熊犬是一个独立的品种位置
- 06月21日科幻大白熊犬会咬人吗位置
- 06月21日科幻大排档吃饭时老板拿扫把冲出眼前的一幕让人位置
- 06月21日科幻大家最想要的萨摩耶犬饲养大全位置
- 06月21日科幻大学生毕业不工作却专职照顾流浪狗父母会怎位置
- 06月21日科幻大狗疫苗多久打一次位置
- 06月20日科幻吃狗粮长不大怎么回事位置
- 06月20日科幻合格主人手把手教你如何给茶杯犬挤腺位置
- 06月20日科幻史氏金翅雀鲷的饲养环境水温在位置
- 06月20日科幻史毕诺犬多少钱是一种全能型的猎犬位置
- 06月20日科幻吃母乳阶段的可卡犬应该怎么养位置