今回はModel以外は継承を行っていないので、「LogicがModelを呼ぶ時以外は"::"で呼び出す」というルールで実装しています。
それが良いか悪いかについてはそこまで深く検討できてはいないですが、個人的には問題ないと考えています。
また、決めたルールに沿って実装しているため、挙動は全て意図通りです。