跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请问这种写法是有什么特殊的意义吗?
未分類
1 4 月 2020

请问这种写法是有什么特殊的意义吗?

请问这种写法是有什么特殊的意义吗?

資深大佬 : HanMeiM 7

先上代码

// 同一个类中的两个方法如下 // 伪代码 public void update(int userId, User user) {     update(userId, user.getLanguage()); }  public void update(int userId, String language) {...略} 

如题,是有什么特殊的含义或者作用吗?
我比较喜欢单一职责,所以对这种方式不太理解
PS: 没有什么其他的意思,就是单纯的想了解一下,本着求知的心态

大佬有話說 (17)

  • 資深大佬 : randyo

    记得叫重载

  • 主 資深大佬 : HanMeiM

    @randyo 你没有理解我想问的问题

  • 資深大佬 : dandycheung

    作为工具类的设计者,这样可以给使用者更多的方便。

  • 資深大佬 : FutherAll

    有没有可能外面拿不到 user.language

  • 主 資深大佬 : HanMeiM

    @dandycheung 这个在逻辑层,我个人觉得没有必要保留第一个方法,在调用的时候你能更明确的知道这个方法需要什么函数,你就传什么参数,为什么要进入方法体内部让方法帮你选你需要哪个参数呢。

  • 資深大佬 : randyo

    可以用来拆分功能,比如更新语言,更新邮箱,更新昵称,拆分开来可以单独使用也可以划分细节,调用更新整个 user 也可以直接调用各个功能点就行了

  • 主 資深大佬 : HanMeiM

    @FutherAll 还会有这种情况吗?不是很了解什么情况下会出现这种状况。。可以举个例子吗?

  • 資深大佬 : randyo

    @HanMeiM 当你的 user 有更多需要更新的数据的时候不用改行参,用第一个就行了

  • 主 資深大佬 : HanMeiM

    @randyo 这个代码是个伪代码,实际的代码就是更新某个具体的属性,方法名也是 update + 属性名,而且第一个方法内部就是我写的那样一行。。。

  • 資深大佬 : dandycheung

    @HanMeiM 对于这么细节的设计,我给出了一个可以这样设计 /编写的理由;你依然可以认为你自己的设计方案 /理念更好。如果你偏要寻找什么深层意义,那是没有必要的。具体问题具体分析,用这样的具体例子来探讨更高层次的 API 设计理念也不太适合。

  • 資深大佬 : randyo

    @HanMeiM 可以继续加,各个数据可能更新代码也比较复杂,而且别人调用有 user 就传,只想更新某个数据也不用构造一个 user 传进来

  • 資深大佬 : MonoLogueChi

    重载就是方便,这个示例不够明显,如果再加上几个参数,比如 user.id ,user.name,这样优势就提现出来了。

    仅仅针对上面的代码,猜想使用场景,有的时候前面获取到的变量是 user 类型,有的时候是 string 类型,都是直接拿起来就能用。更重要的是利于维护,万一某一天 user 改变了,只需要改这里一处就可以了,如果没有重载,直接传入 string 类型,就需要修改所有的 user.getlanguage

  • 主 資深大佬 : HanMeiM

    @MonoLogueChi 诶,原本代码就是这样,我只不过改了一下方法名。
    不过你这个答案让我学习了

  • 資深大佬 : gen900

    说重载的笑死了,这叫多态。可以处理不同的输入类型。对外暴露 2 种接口,至于是否必要要结合业务需求来说了。

  • 資深大佬 : 0x11901

    @gen900 哈哈哈,有内味了

  • 主 資深大佬 : HanMeiM

    @gen900 你再去看看书?

  • 資深大佬 : gen900

    @HanMeiM 哪里说的不对吗?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具