One of the big drawbacks of object-oriented design is that, unlike with most programming, you don't get crashes and error messages if your class architecture has structural flaws. This may seem like a benefit -- the application will still run -- but leaving these flaws in place makes code unnecessarily complicated and difficult to maintain. Watch this video introduction to object-oriented design principles and you'll learn why it's so important to follow good practice.
- View Offline
Programming is full of rules.…When you first learn a language, you spend a lot of time memorizing what can and…can't be done with that language, syntax rules, keywords, sometimes things like…memory management, perhaps you can't create a variable name that has a number at…the beginning, or whether you must break in every case of a switch statement.…And in one language you can send a message to a released object,…another language you can't.…But in one way the situation with these is easy.…If you do these things, you'll have an obvious problem, your code won't compile…or your program will crash.…
With Object-Oriented Design it's not that straightforward, and there is very…little in the way of enforced rules.…If you have a situation where you could use inheritance and you don't and…instead create several classes that duplicate 90% of each other, what will happen?…The program won't crash, there will be no messages.…If you make every member of every class public and violate encapsulation having…every object reach directly into every other object, again, the program will…
Let Simon Allardice introduce you to the terms—words like abstraction, inheritance, polymorphism, subclass—and guide you through defining your requirements and identifying use cases for your program. The course also covers creating conceptual models of your program with design patterns, class and sequence diagrams, and unified modeling language (UML) tools, and then shows how to convert the diagrams into code.
- Why use object-oriented design (OOD)?
- Pinpointing use cases, actors, and scenarios
- Identifying class responsibilities and relationships
- Creating class diagrams
- Using abstract classes
- Working with inheritance
- Creating advanced UML diagrams
- Understanding object-oriented design principles