Когда сам что-то придумываешь, то потом другие решения, более продуманные и более теоретические становятся намного понятнее, потому что ложатся на то, что ты уже очень хорошо понимаешь.
Не рекомендую увлекаться подобным. Во-первых ООП из Julia сделать не получится - концепции языка функциональные. Если хотите использовать принципы ООП - используйте другой язык. Во-вторых, проблема методов, присоединённых как свойства - полное отсутствие контроля со стороны компилятора. В-третьих, у Julia есть функторы - https://docs.julialang.org/en/v1/manual/methods/#Function-like-objects-1