2015-07-05 2 views
0

Привет У меня есть вопрос, потому что я, как правило, используют несколько классов в Ruby, но я не знаю, если это правильно ?, например, следующий код:правильно создать несколько классов в рубине?

Класс Main.rb

class Main 
require_relative 'Archivo.rb' 
require_relative 'Diccionario.rb' 
require_relative 'Jsn.rb' 

hsh = Diccionario.new 
jsn = Jsn.new 
fl = Archivo.new 

puts "Ingresa Nombre" 
nombre = gets 

puts "Ingresa Correo" 
correo = gets 

puts "Ingresa password" 
password = gets 


hsh.usuario(nombre,correo,password) 
jsn.convert_json(hsh.get_usuario) 
fl.write('usuario.json',jsn.get_json) 
fl.read('usuario.json') 
puts fl.get_line 

end 

Класс Diccionario.rb в другом файле

class Diccionario 
    $usuarios = Hash.new 
    require 'json' 
    def usuario(nombre, correo, password) 
    $usuarios = {nombre: nombre, correo: correo, password: password} 
    end 

    def get_usuario 
    $usuarios 
    end 
end 

Класс Jsn.rb в другом файле

class Jsn 
require 'json' 
$cadena 
def convert_json(cadena) 
    $cadena = cadena.to_json 
end 

def get_json 
    $cadena 
end 

end 

Класс Archivo.rb в другом файле

class Archivo 
$line 
def read(file) 
    File.open(file,"r") {|archivo| 
    $line =archivo.gets 
    } 
end 

def write(file,cadena) 
    File.open(file, "w+") do |f| 
    f.puts cadena 
    end 
end 

def get_line() 
    $line.to_s 
end 
end 

спасибо: D

+1

Конечно, это довольно нормально. У вас были какие-то особые проблемы? – mgrant

+0

хорошо, я не уверен в ваших занятиях, но имена их кажутся достаточно плохими. вы должны использовать международный (хех) английский язык для имен (переменные, классы, методы и т. д.) – gaussblurinc

+0

mgrant Не только это, и я заметил, что многие запрограммированы в одном классе = S, спасибо: D – Lagul

ответ

0

Вы определенно должны создавать несколько классов! Я попытался бы подумать о принципах SOLID, чтобы выяснить, где находится поведение, и какие объекты/классы несут ответственность за их реализацию.

В Санди Мец есть прекрасная книга под названием «Практический объектно-ориентированный дизайн в рубине». Это отличная книга о том, как организовать свой код на классы. В нем рассказывается о СРП (принцип единой ответственности) и о том, как развернуть суть проблемы, которую вы пытаетесь решить. Если вы не можете купить книгу, то есть ток, который охватывает основные моменты здесь:

https://www.youtube.com/watch?v=8bZh5LMaSmE

На самом деле она упоминает, что это общая ошибка «не создают достаточное количество классов», и что вы должны чувствовать себя уверенно прервать реализацию дальше до меньших управляемых классов.

+0

не должно быть основано на фактической логике реализации, что количество классов определяется. Я видел, что некоторые используют модули больше, чем классы. –

+0

Да. Согласен. Я просто отвечал на конкретный вопрос о том, должен ли OP использовать несколько классов в Ruby. Я уверен, что я не одинок в создании 500 + LOC User class, и поэтому я считаю, что тенденция состоит в том, чтобы сломать классы слишком мало, а не слишком много. –

+0

Я согласен с этим: –

Смежные вопросы