M:TG Game - Event Bussing

I've been pondering how to do some µObjects in a more intelligent system for a while. I'm going to try to use Magic: The Gathering for this. Much like the poke one; the idea here is to explore µObjects and how they can be applied in…

µObjects: Being Nonredundant

Redundant code is code that changes at the same time for the same reason. Part of object oriented programming is limiting change to a single place. If it changes, it should change in one place. How do µObjects encourage being nonredundant? By focusing on doing one thing. Let's…

µObjects: Being Assertive

Being assertive is about being self-responsbile. Being assertive is about an object being lazy. This also has the object doing all behaviors for the state it holds. It follows from encapsulation that an object will be assertive. How do µObjects encourage this? µObjects do a single thing, and you need…

µObjects: Being Encapsulated

Encapsulation for objects is, IMO, how well the data is hidden. Encapsulation is only acting via behavior from an object. Never getting data and doing something. A well encapsulated object is also a very cohesive object. These traits tend to enhance each other. µObjects encourage this. How do µObjects encourage…

µObjects: Being Loosely Coupled

Loose coupling is about how much a class knows about the objects it's using. The less a class knows about the components it is using; the better the decoupling. Or they are loosely coupled. How do µObjects fair with being loosely coupled? That's what I want…

µObjects: Being Cohesive

Cohesion for objects is how well the behaviors in the class belong together. Some very non-cohesive behaviors would be multiplying two numbers and splitting a string. Multiplying and Raising to a power can be very cohesive behaviors. How do µObjects do cohesion? That's what this is about. The…

µObjects: Pizza Shop - Review

The Pizza Shop The Start [https://quinngil.com/2018/01/07/uobjects-pizza-shop/] More µObjects [https://quinngil.com/2018/01/08/uobjects-pizza-shop-uobjected/] New Requirements [https://quinngil.com/2018/01/09/uobjects-pizza-shop-new-reqs/] Calzoned [https://quinngil.com/2018/01/10/uobjects-pizza-shop-calzoned/] The Final [https://quinngil.com/2018/01/11/uobjects-pizza-shop-final-changes/] I started the…

µObjects: Pizza Shop - Final Changes

These are the final changes for our Pizza Shop. I think a few will be interesting to implement; but nothing stands out as a "how would I...?". µObjects make it very simple and quick to get new functionality in cleanly. One of the changes is the ability to…