Не желая причинять обиду, я бы посоветовал вам немного уменьшить это - вы, кажется, откусываете намного больше, чем можете пережевывать, учитывая ваше знакомство с языком и общими практиками ОО. (Я основываю это на некоторых других вопросах, которые вы задавали - не только на этом.)
В качестве общего предложения, я думаю, что вы избавите себя от большой боли, если внимательно изучите ориентацию объекта в целом (шаблоны проектирования также не повредят), а затем подумаете о проблеме заново.
В качестве альтернативы, если вы опубликуете проблему, которую пытаетесь решить (вместо того, чтобы обсуждать проблемы с решением, которое вы определили), вы можете получить больше тяги.
Надеюсь, это поможет.