zoukankan      html  css  js  c++  java
  • 简单分析接口参数的好处


    今天在 http://flash.9ria.com/thread-36840-1-1.html 找到一个高人写的超级玛丽例子。
    整个下午都在研究别人这个 flash 版的超级玛丽,发现每个类都会有一个相对应的接口。
    一开始还没有深入看源代码时,我想这算是比较简单的一个小游戏,为什么作者
    要写那么多接口干嘛?这些接口是不是有点多余呢?

    后来深入看源代码才发现,这些接口有一个作用就是用来做函数参数的。如:Hero(_iMain:IMain, _iMap:IMap)
    用接口做参数有什么好处?想不明白,googel 了一下,这种用接口做参数的方法是我们平时所说的
    面向接口编程(可能我的理解还很肤浅)。

    找到以下高人的解释:
    -------------------------------------------------
    在小项目中,是体验不到的。使用接口编程,易于程序扩展,降低程序耦合性。
    举个常用的例子说吧,你有个方法为:public viod doxx(ArrayList arraylist),
    方法调用时,参数必须为ArrayList对象。某天,当参数需要更换为其他集合类时,
    必须更改代码;此时如果用接口的话,就不须了;将方法更改为public viod doxx(List list),
    方法调用时,参数就很灵活了,可以传入ArrayList、LinkedList等等,这样从而降点耦合了。
    -------------------------------------------------
    实际上我们还有非常多的解决方法,但我们并不关心。因为只要接口足够稳定,内部实现发生再大
    的变化都是允许的。
    -------------------------------------------------

    看完了上面的解释,我们现在再来看 Hero(_iMain:IMain, _iMap:IMap)。 IMap 是的地图接口,当这个游戏中有多个地图时
    ,无论传什么具体的地图对象进去这个参数都适用,这种方法好处就显而易见了。
  • 相关阅读:
    Canvas鼠标点击特效(富强、民主...)、收藏
    mysql实现当前行的值累加上一行的值
    HTML生成横向的PDF
    Java iText+FreeMarker生成PDF(HTML转PDF)
    HTML图片点击放大---关闭
    HTML页面通过JS跨域调用,子传父
    查询结果中出现行号(适用于按名次排序)
    在Nginx和Apache服务器配置https
    Rinetd 端口转发工具
    lsyncd使用中遇到的问题
  • 原文地址:https://www.cnblogs.com/chy1000/p/1620487.html
Copyright © 2011-2022 走看看