Day 3 of Software Architect 2012 from London has passed. Today was a great day for science also. I went at 3 sessions sustained by Allen Holub. This man is not only a great speaker, but also knows the programing art extremely good.
Like in the other post about conferences where I participate, I will present in some words the things that I consider important.
Now we are living in a world that where OOP is everywhere. We are trying to create a model for each object from this world, but there are times when we forget base things. An object should expose a set of functionalities and not information. Sounds odd in our days, where everything is a POCO or a service, but this is how we should write our classes.
A world that is formed from POCO and services is not more than a procedural programing. In this case let’s change the name from OO to Procedural Programing. An object should be defined by what can do, what actions contain – public methods; and not by data that he contains. The content is not important; the functions that are exposed are the most important.
This is easy to say, but trust me, it is very hard to implement. For example when we have a class that want to calculate the price with VAD and deduction of a product we create a separate class for this. This calculator class will access the price property of our product. But we don’t need something like this. It is not wrong to have a method that returns the final price of the product in our product class. Yes, of course, as input parameter or in constructor we can specify an instance of an object that knows how to calculate (the final formula).
There are lot more thing to talk about this subject. I promise that every week I will have a dedicated post related to OOP and design. Until than I will buy this book and start reading.