簡體   English   中英

為什么我們需要OOP語言中的方法的void返回類型?

[英]Why would we need void return type from methods in OOP languages?

這並不是說我昨天開始學習Java,但我突然想到,為什么我們會使用void方法,如果我們可以返回this呢? 這樣我們可以在對象上鏈接方法調用並使代碼更具可讀性(我知道這種方法已經越來越受歡迎,但主要是使用不可變對象,讓我們忘記Java Beans約定)。 我認為void的唯一情況是靜態方法。

大概你會接受一些方法需要告訴你一些東西 - 某種返回值。 我們會“返回我們想要返回的值,這似乎是人為的和遲鈍的,除非我們實際上不想返回任何東西,在這種情況下我們將返回this ,除非它是一個靜態方法,在這種情況下我們返回void ” 。

怎么樣:

  • 如果適合返回某些東西,則返回它
  • 如果不是,那就不要了
  • (對於“流利”API真正有意義的情況,有一些蠕動空間)

另外:認為繼承; 如果我有一個虛方法Foo() ,那么返回類型必須是Foo的聲明類型:

public virtual SomeType Foo() {...}

現在假設我使用Bar : SomeType子類SomeType ,並且有一個Bar實例:

Bar obj = new Bar();
obj.Foo().SomeOtherMethodOnBar(); // ERROR hey, where did my Bar go!?!?!

多態性不尊重流暢的API。

作為最后的想法:當你實際上不想鏈接方法時,想想所有的“流行音樂”......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM