3 ms·
This isn't a property of OOP. This is a property of poor class design. You absolutely should be designing classes such that every possible sequencing of their p
by UncleMeat 3y ago
This isn't a property of OOP. This is a property of poor class design. You absolutely should be designing classes such that every possible sequencing of their public methods leaves them in a valid state and maintains their invariants.
Structs have the issue you describe and they aren't really OOP.
Yes, if the first thing you do when you write a class is make a setter method for each field then you will have problems. That's not really a property of OOP.
- devmunchies 3y agoPoor class design IS a property of OOP. All of these logical errors that are easy to commit are terrible because they are usually runtime bugs, not compile time. As I think of it, I think a neat feature of OOP would be conditional methods that are only callable under specific circumstances. For example, the “Customer.SendPasswordResetEmail()” method couldn’t be called (or didn’t even exist) until I verify that the “Customer.IsEmailVerified” property is true. Being able to add these type of annotations to methods for expected object state would help catch some logic bugs at compile time.