Я пытаюсь реализовать общий числовой класс. В основном мое приложение должно получить строку от пользователя и проанализировать ее, чтобы определить, является ли ее британская (футы в долях или любая их комбинация) или ее метрика (м см мм или любая комбинация). Моя идея заключалась в том, чтобы сделать классы Metric и Imperial, оба из которых имеют более общий тип Number. Затем пользовательский интерфейс создает объект Number, передающий строку для синтаксического анализа, и число определяет, является ли оно метрическим или британским. Я вижу, как легко было бы создать 1 класс с большим числом, который делает это, но мне кажется, что я должен отделить метрические и имперские классы от стандартного интерфейса (Number), поскольку они будут делать гораздо больше, чем просто анализировать строку.
Итак, если я сделаю Number * num = [[Number alloc] initWithString: someString];
, я получу подкласс Number, специфичный для британских или метрических единиц. Именно здесь я понимаю, что что-то не имеет смысла, но не знаю, как это сделать.
Как лучше с этим справиться?