2011-02-23 131 views

回答

2

技術上,是的。然而,確切的違規行爲並不是不好......單一責任原則實際上是一種抽象原則,可以應用於任何代碼單元。在Steve McConnell's Code Complete 2,他實際上談到這個凝聚力。在實踐中,這是用於例程的單一責任原則的更具體形式。

根據他最期望的類的內聚力是官能凝聚力其中程序執行一個且僅一個操作(他示出的例子是sin()getCustomerName()eraseFile()等)。所以,exit()做2件事。因此它顯示時間凝聚力(操作在同一例程中完成,因爲它們是在同一時間完成的)。

現在,exit($arg)的原始參數是應用程序的返回狀態(請參閱:linux exit status codes)。在C中,這是從main()返回的整數值。但由於PHP沒有本地函數,因此它被添加到exit()參數中。試試吧,加exit(2),程序的返回值將會是狀態2(通常成功爲0,見are there any standard linux exit status codes)。

但是,由於PHP的進入門檻較低,大多數開發人員可能不會了解狀態代碼。所以,它接受了一個字符串。如果參數是字符串,則在STDOUT上回顯狀態,然後應用程序終止。如果它是一個整數,它將從程序中返回。所以這是一個神器。

現在,這是一個問題嗎?不是真的。它是理想的嗎?不,但它也並不可怕,因爲它們是相關的。最後,我不會失眠...

5

不,因爲exit是一種程序性語言結構,不是任何類的成員函數。單一責任原則應該適用於面向對象的編程,它不包含PHP語言的全部基礎(只是它的一部分)。

+0

你真的是19嗎? –

+0

@Emanuil:是的,我是。 – BoltClock

+0

我很印象深刻。 –

相關問題