簡體   English   中英

編程的邏輯

[英]The logic of programming

我對編程邏輯有疑問,請查看以下示例:

public function logout() {
     if (Auth::user()) {
         Auth::logout();
     }
}

在上面的示例中,我們首先檢查用戶是否已登錄。在此功能中,我們可以說只有登錄用戶才能注銷,但如果您只能登錄,則可以訪問“注銷”功能,那么一樣的東西。 哪一個更好,為什么? 我遇到了很多這樣的事情,我從來不知道選擇哪一個。

雖然它可能是真實的,你應該只能夠訪問,如果你已經登錄此功能,這是你的代碼只是很好的做法。 這里封裝的方法確保在有意義的上下文中調用它。

這個真正重要的原因可以通過有缺陷的Web應用程序(和其他)的許多示例來說明,其中代碼假定用戶只能選擇他們所呈現的選項。 但是,無論HTML界面中是否顯示該功能,用戶都可以真正調用Web應用程序中任何公開的函數。

因此,開發人員必須確保調用函數的上下文有意義。 在您提交的案例中,類創建者有一個特定的用法,您和我可以理解,只有在您登錄時才能訪問它,但開發人員不能對其他用戶強制執行此操作,除非他包含這樣的邏輯(或者,或許,在他公開的方法中檢查是否允許訪問而不是用戶是否登錄。

暫無
暫無

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

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