Object Maze

2006-03-15 Thread Brian Peddle
I am working on some code right now that is a maze of objects.  Objects that
call Objects that call Objects and that inherit from more objects.  

To me it looks like spaghetti code only instead of a bunch of includes it is
objects.

The application isn't rocket science but lets say it a mid-large
application.  Are there any type of recommendations for things like how many
objects do you keep drilling down into from a controller page.





~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:235463
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations  Support: http://www.houseoffusion.com/tiny.cfm/54


Re: Object Maze

2006-03-15 Thread S . Isaac Dealey
 I am working on some code right now that is a maze of
 objects.  Objects that
 call Objects that call Objects and that inherit from more
 objects.

 To me it looks like spaghetti code only instead of a bunch
 of includes it is
 objects.

 The application isn't rocket science but lets say it a
 mid-large
 application.  Are there any type of recommendations for
 things like how many
 objects do you keep drilling down into from a controller
 page.

Nope. The purpose of an object is for it to be a black box, so if a
calling page creates or references one it should have no idea what is
inside that object -- what other objects it references or inherits
from. This encapsulation means that if you don't like the way the
object is currently constructed, you can change its internal
componentns -- you can add new objects or remove what you perceive to
be redundant objects without affecting the calling page one iota. This
is the reason that you're also not supposed to reach through an
object to manipulate one of its internals. Factories and service
locators are sort of an exception because their sole purpose is to
create, maintain and return objects which the factory ultimately
doesn't utilize or care about.

What you're looking at may be well formed OO or it may indeed be
spaghetti if the original author did a bad job of encapsulating his
objects. The real test for non-spaghetti in an OO application is that
each object can be used by another object or calling page without
knowing anything about its internal structure. Beyond that there's a
fair amount of debate about when to create another sub-object.


s. isaac dealey 434.293.6201
new epoch : isn't it time for a change?

add features without fixtures with
the onTap open source framework

http://www.fusiontap.com
http://coldfusion.sys-con.com/author/4806Dealey.htm


~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:235465
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations  Support: http://www.houseoffusion.com/tiny.cfm/54