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来自:“只有公共方法可以作为操作调用。降低方法的可见性(使用私有或受保护的方法)是最佳做法。”“只有公共方法可以作为操作调用。最好的做法是降低不作为操作的方法(私有或受保护)的可见性,如辅助方法或筛选器。”