dennis-fedco Posted March 14, 2014 Share Posted March 14, 2014 Suppose I need code to compute various lengths of assembly that contains a "motor", a "frame", and a "pump". When all three are put together, there are various lengths that can be computed from various assembly part points. Some lengths require knowledge of more than one of the parts (i.e. frame and a motor). How do I do this?I am thinking that I can create three object types, for each of the parts, but how do I then do the computations? Right now computations related only to the pump I am doing those in the pump class. But now I need a computation that requires all three. This is where I need help. I don't want to create a separate Computation class because it cannot possibly hold all (future) possible computations I may need. Even if I did, I think it will degenerate into procedure-like programming wrapped into a class. Might I perhaps just use getter methods for respective classes and do computation outside and separately inside the calling function? i.e. function compute() { $pump = new Pump(); $frame = new Frame(); $motor = new Motor(); return 0.35 + $pump->getVar() * $frame->getVar() - $motor->computeLength(4); //except more complex... } Quote Link to comment Share on other sites More sharing options...
dennis-fedco Posted March 14, 2014 Author Share Posted March 14, 2014 Alternatively I can do $pump = new Pump(); //here, $pump class will be aware of the motor variable, to do its computation $pump->computeLength($motorVariable); Quote Link to comment Share on other sites More sharing options...
requinix Posted March 14, 2014 Share Posted March 14, 2014 There has to be something somewhere that is aware of the configuration of the parts. If it didn't then the application wouldn't even know of the fact that the parts are combined. That's where the logic goes. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.