Re: What design patterns do you usually use?

From: Date: Fri, 29 Feb 2008 15:12:19 +0000
Subject: Re: What design patterns do you usually use?
References: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  Groups: php.general 
Request: Send a blank email to php-general+get-270735@lists.php.net to get a copy of this message
At 8:52 AM +0100 2/29/08, Zoltán Németh wrote:
it's not just that, it's also a different way of thinking about your data. for example say you have a 'user' - you always have one of that ;) in procedural code you would store the properties of the user in an array or whatever, and have an include file with functions to manipulate the user. so why not group those two together in a class? <very simplifying example> procedural code: include('user_functions.php'); $user = load_user_data($userid); $user = set_user_name($user, 'tedd'); oop code: include('user.class.php'); $user = new User($userid); $user->setName('tedd'); </very simplifying example> see, same number of lines, so no added complexity. however the second one has some advantages: - you don't have to pass around the data since it is grouped together with the method you call - you don't have to worry about some ignorant developer calling set_user_name with, say, a product array - User->setName will always be called on a user object - the second one looks soo better ;) (ok, you said, new paint :) )
I can understand your oop code very well -- but your procedural code example is lacking. First, if I were to have information tied to a user, then I would use MySQL and establish a record with all the fields I needed for that user. My code simply would be: include('user_functions.php'); $user = set_user_name($user, 'tedd'); And thus, two lines instead of three. But in fairness, the user_functions.php would establish a connection to the database and the function "set_user_name($user, 'tedd')" would simply use 'tedd' with respect to whatever "$user" is. The number of lines of code really doesn't apply with respect to organization value -- after all, the best organization is to document your code which certainly adds lines of "code". Sure, one can argue that remarks are not code, but code without them would be different, so in my mind it's all code. I don't think that you can show me an oop example that I can't duplicate procedurally and that's my point. Oop provides a different organization method. Cheers, tedd -- ------- http://sperling.com http://ancientstones.com http://earthstones.com

« previous php.general (#270735) next »