Ruby on rails 在Ruby中,不是从类外调用的每个方法都应该是私有的
我有一个类控制器Ruby on rails 在Ruby中,不是从类外调用的每个方法都应该是私有的,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个类控制器 class QueueMessagesController < SecureController def create create_queue_message(params) if params[:type] == 'cards' delete_queue_message(params) if params[:type] == 'queue' end def create_queue_message(params) end
class QueueMessagesController < SecureController
def create
create_queue_message(params) if params[:type] == 'cards'
delete_queue_message(params) if params[:type] == 'queue'
end
def create_queue_message(params)
end
def delete_queue_message(params)
end
private
def queue_params
params.require(:headers)
end
end
class QueueMessagesController
所以我的问题是
create\u queue\u message
和delete\u queue\u message
是否应该是私有方法。什么是好方法。我会回答:在面向对象编程中,每个只在内部使用的方法都应该是私有的
如果您没有将这些方法设置为私有,那么其他开发人员可能会认为它们属于类的公共API,并可能直接使用它们
因此,我认为将所有方法作为默认值设置为私有,并且只有在有理由将某个方法添加到公共API时才将其公开,这是一个好的做法。我会回答:在面向对象编程中,每个只在内部使用的方法都应该是私有的 如果您没有将这些方法设置为私有,那么其他开发人员可能会认为它们属于类的公共API,并可能直接使用它们
因此,我认为将所有方法
private
作为默认设置是一种好的做法,并且只有在有理由将某个方法添加到公共API时才将其公开。明白了,谢谢,并且必须特别注意Rails控制器–您不希望您的内部方法被用户调用,因为您把程序搞砸了路由。@Stefan明白了,谢谢,而且必须特别注意Rails控制器–您不希望您的内部方法被用户调用,因为您弄乱了路由。@Stefan来自:“只有公共方法可以作为操作调用。降低方法的可见性(使用私有或受保护的方法)是最佳做法。”“只有公共方法可以作为操作调用。最好的做法是降低不作为操作的方法(私有或受保护)的可见性,如辅助方法或筛选器。”