[英]Instance Methods vs. Class methods For a Helper Class - Ruby, Rails
我正在處理一項rake task
,該rake task
根據提交給外部數據庫 ( MS SQL
) 的查詢在本地數據庫中創建新記錄。 連接、查詢和記錄創建發生在我創建的名為ExternalDatabaseConnector
的助手中。 Rake 任務只是調用方法並作為排序controller
運行。
我的問題是在我的助手類的方法(我已經establish_connection
, execute_query
, create_hash
和store_records
)應該叫上self
(即是類的方法),或每一個都可以在幫助我的一個實例叫什么名字?
我在想只會有一個連接並且 rake 任務只會按照其計划觸發一次,並且不需要創建我的助手類的單獨實例?
如果您不需要自定義每個實例的狀態(通過initialize
和實例變量),則可以使用類方法來代替。 如果你使用類方法,你可以讓你的Class
成為一個Module
,它會產生同樣的效果。
如果您在編程時使用純函數范式,則永遠不會使用實例方法。 相反,您將所有需要的數據作為參數傳遞。 我不推薦這種方法,因為在很多情況下 OOP 只是讓事情變得更容易,但對於這種情況,類方法對我來說很有意義。 函數式編程很有用( map
、 reduce
或proc 簡寫之類的方法),但我看不出有任何理由使用它代替OOP。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.