Я на полпути к проекту ООП в финансовой индустрии, и я оглядываюсь назад на свои дизайнерские решения. Я решил некоторые проблемы, используя шаблоны, и я особенно горжусь ими, но в других местах мне, кажется, не хватает строгости. Мои собственные сценарии использования чрезвычайно высокого уровня, так как фактический ввод, сделанный пользователем, даже не сравнивается со сложностью вычислений, сделанных под капотом. Чтобы дать вам представление, мне пришлось интегрировать сторонний математический решатель и целый анализатор, чтобы пользователь мог вводить свои собственные формулы.
Просто так получается, что у меня есть добрых два десятка классов, все они названы одинаково: калькулятор - все что угодно
Моя первоначальная проблема заключалась в том, что у меня не было четких и четких доменных объектов для работы (за исключением, например, модуля синтаксического анализа). Мне было очень трудно думать с точки зрения объектов - было бы гораздо проще написать программу процедурно, так как по сути мы просто работаем либо с деньгами, либо с процентами, чтобы получить новые суммы и ... проценты. Я не мог думать ни о каком другом объекте, кроме Калькуляторов ... вычисляя различные веса или суммы. Все казалось огромным алгоритмом, включающим $$
Мой вопрос заключается в том, как можно думать об объектах, когда объекты не могут быть естественным образом найдены в модели предметной области или в вариантах использования?