Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Choosing among object/class/module/top-level methods...
Sam Kong
7/13/2006 10:35:00 PM
Hi, Rubyists!
Whenever I try to make a quick solution program,
I stop for a moment to think which approach I should take.
Let's say that you want to make a puzzle-solver (like Sudoku-solver)
and it's made up of one 'solve' method and several helper methods.
Which is your preferred way among the following?
And why?
[1]
def solve_sudoku problem
...
end
def helper1 args
...
end
def helper2 args
...
end
puts solve_sudoku "15000..00358"
[2]
class Sudoku
def initialize problem
...
end
private
def helper1
...
end
def helper2
...
end
end
sudoku = Sudoku.new "15000..00358"
puts sudoku.solve
[3]
class Sudoku
class << self
def solve problem
...
end
private
def helper1
...
end
def helper2
...
end
end
end
puts Sudoku.solve "15000..00358"
[4]
module Sudoku
class << self
def solve problem
...
end
private
def helper1
...
end
def helper2
...
end
end
end
end
puts Sudoku.solve "15000..00358"
I'm a big fan of Object-orientation.
But if the object's life-span is as short as Solver.new(problem).solve,
I'm really hesitant to create an object when a simple method call will
do.
Am I thinking of a worthless subjective thing?
Do you have any criteria about going for object/class/module/top-level
methods?
Thanks.
Sam
--
Posted via
http://www.ruby-...
.
3 Answers
Ara.T.Howard
7/13/2006 10:44:00 PM
0
Sam Kong
7/13/2006 10:49:00 PM
0
unknown wrote:
> solver = prototype{
> @some_instance_var
>
> def solve
> something @some_instance_var
> end
>
> def something arg
> end
> }
I haven't checked out your library yet.
Can you set visibility on methods?
Helper methods don't have to be public.
Probably I need to see your library first.
I'll talk to you again.
Sam
--
Posted via
http://www.ruby-...
.
Ara.T.Howard
7/13/2006 10:59:00 PM
0
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Choosing among object/class/module/top-level methods...
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password