SORU
24 EYLÜL 2008, ÇARŞAMBA


En iyi Raylar üzerinde Ruby denetleyicileri arasında kodu yeniden kullanma yöntemleri

Paylaşmak istediğim bazı denetleyici yöntemleri var. Raylar üzerinde ruby, bunu yapmak için en iyi yöntem nedir? Benim denetleyicileri genişletmek soyut bir sınıf oluşturmak gerekir, ya da modül oluşturun ve her denetleyicisine ekleyin. Aşağıda paylaşmak istiyorum denetleyicisi yöntemleri:

def driving_directions
  @address_to = params[:address_to]
  @address_from = params[:address_from]
  @map_center = params[:map_center_start]

  # if we were not given a center point to start our map on
  # let's create one.
  if !@map_center && @address_to
    @map_center = GeoKit::Geocoders::MultiGeocoder.geocode(@address_to).ll
  elsif !@map_center && @address_from
    @map_center = GeoKit::Geocoders::MultiGeocoder.geocode(@address_from).ll
  end
end

def printer_friendly
  starting_point = params[:starting_point].split(',').collect{|e|e.to_f}
  ne = params[:ne].split(',').collect{|e|e.to_f}
  sw = params[:sw].split(',').collect{|e|e.to_f}
  size = params[:size].split(',').collect{|e|e.to_f}
  address = params[:address]

  @markers = retrieve_points(ne,sw,size,false)
  @map = initialize_map([[sw[0],sw[1]],[ne[0],ne[1]]],[starting_point[0],starting_point[1]],false,@markers,true)
  @address_string = address
end

CEVAP
25 EYLÜL 2008, PERŞEMBE


Benim görüşüme göre, normal OO tasarım ilkeleri geçerlidir:

  • Eğer bu kod gerçekten durum nesnesi için erişim ihtiyacı olmayan yarar bir set, ayrı olarak çağrılacak bir modül koyarak düşünün. Eğer kodu yardımcı eşleme, bir modül oluşturun Maps ve yöntemleri gibi erişim ise tüm örnek için: Maps::driving_directions.
  • Kodu devlet ihtiyaçları ve kullanılır veya her kontrolör olarak kullanılabilir, ApplicationController kodu koy.
  • Eğer kodu ihtiyaç durumu ve kullanılan bir alt kümesi tüm kontrolörler, bu yakından ve mantıksal olarak ilişkili (yani tüm haritaları) oluşturmak için bir temel sınıf (class MapController < ApplicationController) ve paylaşılan kod var.
  • Kodu devlet ihtiyaçları ve tüm kontrolörler, alt kullanılırsa çok yakından ilgili değil, bir modül koymak ve gerekli denetleyicileri dahil.

Senin durumunda, bu yöntemleri tercih ihtiyaç denetleyicileri arasında mantıksal ilişkiye bağlıdır bu yüzden devlet (**5). Ek olarak:

Ayrıca:

  • Mümkün olduğunda elimizde bir tekrarlanan kod için kullanılması ve de yaygın bir '' dizin veya belirli bir yol üzerinden alır. elimizde bir yer
  • Mümkün olduğunda Dinlendirici bir yaklaşım sopa (yöntemleri) ve eğer varsa olmayan Dinlendirici bir sürü kendini oluşturma bulursan yöntemleri kendi denetleyicisi için onları ayıklamak düşünün.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AFISHAL

    AFISHAL

    7 Mart 2009
  • Skrillex

    Skrillex

    6 NİSAN 2010
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013