Watch the long video: • Master the Design of Classes
Become a sponsor to access source code ► / zoranhorvat
Join Discord server with topics on C# ► https://codinghelmet.com/go/discord
Enroll course Beginning Object-Oriented Programming with C# ► https://codinghelmet.com/go/beginning...
Subscribe ► / @zoran-horvat
Consider a model class that depends on several other mutable classes.
With private components, we must define all operations on this class, making it grow to a monstrous size over time.
The alternative is to expose components publicly and let others operate on them.
The long video shows the development of this model.
The trouble is with operations that demand coordination between components.
Advancing to the next release of the book requires simultaneous changes to the publication date and the edition number.
This is the only valid way.
However, the edition component is a publicly accessible mutable object.
Someone could mutate it individually, breaking the domain rules.
Turning that component private would attract dozens of new methods into this class again, as you saw.
This problem has no satisfying solution in an entirely mutable object-oriented design.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
👨 About Me 👨
Hi, I’m Zoran, I have more than 20 years of experience as a software developer, architect, team lead, and more. I have been programming in C# since its inception in the early 2000s. Since 2017 I have started publishing professional video courses at Pluralsight and Udemy and by this point, there are over 100 hours of the highest-quality videos you can watch on those platforms. On my YouTube channel, you can find shorter video forms focused on clarifying practical issues in coding, design, and architecture of .NET applications.❤️
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
⚡️COPYRIGHT NOTICE:
The Copyright Laws of the United States recognize a “fair use” of copyrighted content. Section 107 of the U.S. Copyright Act states: “Notwithstanding the provisions of sections 106 and 106A, the fair use of a copyrighted work, including such use by reproduction in copies or phono records or by any other means specified by that section, for purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship, or research, is not an infringement of copyright." This video and our youtube channel, in general, may contain certain copyrighted works that were not specifically authorized to be used by the copyright holder(s), but which we believe in good faith are protected by federal law and the Fair use doctrine for one or more of the reasons noted above.