Теория объектно-ориентированного программирования - PullRequest
0 голосов
/ 26 февраля 2020

Этот вопрос касается обобщенного подхода к построению иерархии объектов. Я буду использовать пример, чтобы объяснить мои вопросы.

Предположим, я создаю симулятор цифровых схем, и мы делаем это с помощью объектно-ориентированной структуры классов. Базовым классом являются логические элементы c, из которых мы получаем двоичные и унарные элементы, затем из двоичных элементов мы получаем классы AND, OR, XOR et c. и из унарных ворот мы получаем класс для ворот НЕ. Это имеет смысл, так как на каждом слое вы становитесь более определенными, и вы разветвляетесь на подмножества, в которых есть данные, уникальные для этого производного класса.

Но предположим, что тогда мы хотим построить что-то из нашей производной логики c классы гейта, например, 8-битная схема сумматора. В этом случае 8-битный сумматор не является частью исходной иерархической структуры - он не является логическим логическим элементом c, но, несмотря на это, он может быть построен из логических логических элементов c. Кроме того, 8-битный сумматор можно разбить на 8 полных сумматоров, каждый из которых можно разбить на 2 половинных сумматора. Но, в отличие от исходной иерархии логических элементов c, каждый из этих объектов (8-битный сумматор, полный сумматор и половинный сумматор) все работают как отдельные компоненты, тогда как единственные классы, которые фактически служат компонентом из логики c иерархия ворот - это конечные производные классы AND, OR, XOR, NOT. В этом смысле я не понимаю, будет ли целесообразно создавать структуру классов на основе наследования для схем сумматора.

Мне кажется, что полусуммер, полный сумматор и 8-битный сумматор, каждый из которых должен состоять из отдельных объектов logi c gate, но это было бы неэффективно, так как требовало бы многократного повторения кода, и поэтому возникает вопрос, как лучше расположить эти классы структуры так, что самый сложный 8-битный сумматор может быть построен из полных сумматоров, а полные сумматоры могут быть построены из полумесяцев, а половинные сумматоры могут быть построены из отдельных логических логических элементов c.

Большое спасибо за этот ответ.

...