路由和控制器都是單例類,爲什麼不直接執行Ember.Route.create()或Ember.Controller.create()?爲什麼路線和控制器是類而不是對象?
0
A
回答
0
無論何時我們定義一個新的路由或控制器,我們基本上都會創建該路由或控制器的新實例。我們使用create方法來做到這一點,以便我們可以根據需要覆蓋任何方法鉤子。所以簡而言之,每條路線和控制器都有不同的實例(不是一個實例)。對於Ember應用程序,我們使用create方法,因爲我們只能有一個應用程序實例,但我們可以有多個路由,控制器和視圖,所以我們使用extend方法。
1
這只是一個猜測,但我會想象因爲這種方式更通用。是的,控制器和路線和單身人士現在,但他們可能並不總是。如果Ember明天決定控制器不再需要單身人士,那麼您不必改變已經聲明控制器的方式。 (我認爲有可能在容器中有這樣一種方式,所以你的控制器和路由是而不是單身人士,我不會推薦它)
還有其他一些小的好處。您可以擴展類而不是對象,因此將它們聲明爲類可以重用代碼。另外,您無法在創建時聲明計算屬性,因此無論如何您必須執行Ember.Controller.extend().create()
。
相關問題
- 1. 什麼是控制對象
- 2. 爲什麼類對象的屬性保留而不是複製?
- 3. 爲什麼UnhandledExceptionEventArgs.ExceptionObject對象而不是Exception?
- 4. 爲什麼注入控制器而不是操作
- 5. 在Laravel中使用路線而不是控制器搜索
- 6. 爲什麼java方法與對象而不是類相關?
- 7. 控制檯返回[對象對象]而不是對象成員
- 8. 爲什麼HttpContext是一個抽象類而不是接口?
- 9. 爲什麼java.sql.Statement是一個接口而不是抽象類?
- 10. 什麼是對遊戲控制器
- 11. 爲什麼控制檯打印對象的數組,但不是一個對象
- 12. 在快速路線中,爲什麼`。/ routes`而不是`/ routes`?
- 13. CakePHP的:重用模型,控制器,配置而不是觀點和路線
- 14. 使用控制器作爲語法而不是$ scope的優點是什麼?
- 15. 爲什麼我們需要抽象類而不是虛擬類?
- 16. 對象作爲參數,爲什麼不能我們聲明的類,而不是
- 17. 什麼是Laravel中的路由和控制器?
- 18. 什麼時候Zend_Controller_Request_Http不是控制器
- 19. Zend_Auth:爲什麼驗證對象名爲adapter而不是策略?
- 20. 繪製點劃線(....)線索路徑,而不是一個線路(________)
- 21. CakePHP的 - HTML的「鏈接 - 爲什麼使用控制器=>和行動=>而不只是控制器/操作
- 22. 爲什麼Svg路徑出現在控制檯中而不是屏幕上?
- 23. 找出對象是類對象而不是類的實例
- 24. laravel路線和控制器不工作
- 25. 在Rails 5的控制器中使用什麼而不是after_commit?
- 26. PID迴路控制什麼是dt? term
- 27. glGetMatrix()是什麼對象(爲什麼不是glSetMatrix()呢?)?
- 28. 爲什麼DataTemplate會返回類名而不是控件?
- 29. 爲什麼這條鐵路路線不會去我的控制器?
- 30. 爲什麼不能從控制器訪問Firebase對象的$ value?