From 52df75f27391aae4c3ae44632efb26bc2f17dd29 Mon Sep 17 00:00:00 2001 From: Ahmed Waleed Malik Date: Tue, 22 Dec 2020 13:58:32 +0500 Subject: [PATCH] Fix broken reference and image (#52) --- architecture/object-calisthenics.md | 7 +++---- img/2-instance-variables.png | Bin 0 -> 21086 bytes 2 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 img/2-instance-variables.png diff --git a/architecture/object-calisthenics.md b/architecture/object-calisthenics.md index 5944077..516471a 100644 --- a/architecture/object-calisthenics.md +++ b/architecture/object-calisthenics.md @@ -455,9 +455,9 @@ I thought people would yell at me while introducing this rule, but it didn’t h A picture is worth a thousand words, so here is the explanation of this rule in picture. -![](https://raw.github.com/TheLadders/object-calisthenics/master/assets/2-instance-variables.png) +![RT](../img/2-instance-variables.png) -Source: [https://github.com/TheLadders/object-calisthenics#rule-8-no-classes-with-more-than-two-instance-variables](https://github.com/TheLadders/object-calisthenics#rule-8-no-classes-with-more-than-two-instance-variables). +Source: [Object Calisthenics](https://williamdurand.fr/2013/06/03/object-calisthenics/#8-no-classes-with-more-than-two-instance-variables) The main question was _Why two attributes?_ My answer was _Why not?_ Not the best explanation but, in my opinion, the main idea is to distinguish **two kinds of classes**, those that **maintain the state of a single instance variable**, and those that **coordinate two separate variables**. **Two** is an arbitrary choice that forces you to decouple your classes a lot. @@ -586,6 +586,5 @@ Purpose of this point to avoid getter/setter methods as much as you can, but if ## References -- https://github.com/TheLadders/object-calisthenics -- https://dev.to/scottshipp/avoid-getters-and-setters-whenever-possible-c8m - [https://williamdurand.fr/2013/06/03/object-calisthenics](https://williamdurand.fr/2013/06/03/object-calisthenics) +- [https://dev.to/scottshipp/avoid-getters-and-setters-whenever-possible-c8m](https://dev.to/scottshipp/avoid-getters-and-setters-whenever-possible-c8m) diff --git a/img/2-instance-variables.png b/img/2-instance-variables.png new file mode 100644 index 0000000000000000000000000000000000000000..e18e4d4c28f2d606090fda2923de697a45ea3132 GIT binary patch literal 21086 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 JB7@&<{0;R78%h8G literal 0 HcmV?d00001