簡體   English   中英

Helper 類的實例方法與類方法 - Ruby、Rails

[英]Instance Methods vs. Class methods For a Helper Class - Ruby, Rails

我正在處理一項rake task ,該rake task根據提交給外部數據庫 ( MS SQL ) 的查詢在本地數據庫中創建新記錄。 連接、查詢和記錄創建發生在我創建的名為ExternalDatabaseConnector的助手中。 Rake 任務只是調用方法並作為排序controller運行。

我的問題是在我的助手類的方法(我已經establish_connectionexecute_querycreate_hashstore_records )應該叫上self (即是類的方法),或每一個都可以在幫助我的一個實例叫什么名字?

我在想只會有一個連接並且 rake 任務只會按照其計划觸發一次,並且不需要創建我的助手類的單獨實例?

如果您不需要自定義每個實例的狀態(通過initialize和實例變量),則可以使用類方法來代替。 如果你使用類方法,你可以讓你的Class成為一個Module ,它會產生同樣的效果。

如果您在編程時使用純函數范式,則永遠不會使用實例方法。 相反,您將所有需要的數據作為參數傳遞。 我不推薦這種方法,因為在很多情況下 OOP 只是讓事情變得更容易,但對於這種情況,類方法對我來說很有意義。 函數式編程很有用( mapreduceproc 簡寫之類的方法),但我看不出有任何理由使用它代替OOP。

暫無
暫無

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

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