Что делает “монолитный” средний?

Я видел его в контексте классов. Я подозреваю, что это означает, что класс мог использовать быть разломанным на логических подблоков, но я не могу найти хорошее определение. Вы могли дать некоторые примеры?

Спасибо за справку.

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

16
задан Kristian D'Amato 5 July 2010 в 12:28
поделиться

3 ответа

Интересный вопрос. Я не думаю, что есть какие-либо формальные определения того, что такое монолитный класс, но идея у вас есть.Класс, содержащий несколько компонентов, которые логически не связаны или бессмысленно связаны, является монолитным классом.

Если вы читали Прагматический программист , который я настоятельно рекомендую, вы можете определить монолитный класс как антипаттерн, который противоречит почти всему, что написано в этой книге.

Что касается примеров, вы найдете больше в области проектирования микросхем и ОС, где есть формальные определения монолитных микросхем / ядер , которые похожи на монолитный класс. Вот несколько примеров, хотя каждый из них можно возразить против включения в этот список:

  1. JOGL - Java-привязки для OpenGL. Это может быть спорным, и на то есть веские причины.
  2. Большинство академических проектов - По понятным причинам.

Если вы начали программировать в одиночку, а не присоединились к команде, то, скорее всего, вы сможете открыть один из своих первых проектов, и там будет класс, который будет монолитным.

15
ответ дан 30 November 2019 в 17:14
поделиться

Если вы посмотрите этимологию этого слова, то увидите, что оно происходит от греческих монос (одиночный) и lithos (камень). В контексте программного обеспечения, которое вы упомянули, оно описывает одноуровневое приложение, в котором код для пользовательского интерфейса и доступа к данным объединены в единую программу с единой платформы .

11
ответ дан 30 November 2019 в 17:14
поделиться

«Монолитный» - это термин, который использовался для пламени успешного программного обеспечения . Эта ссылка раскрывает предположения, присущие этому термину, и их ограниченную полезность.

Основное предположение состоит в том, что система работает лучше, если она построена из программных компонентов, каждый из которых имеет индивидуальную, четко определенную задачу. Интуитивно это кажется правильным. Если работает каждый компонент, должна работать вся система, верно?

На самом деле все не так просто. Более крупная композиционная (немонолитная) система может упустить критическую функцию, даже если виноват не один компонент. Это происходит, когда архитектурный проект не может назначить функцию какому-либо конкретному компоненту. Это может произойти, особенно если это функция, которая не соответствует одному компоненту.

Итак, Linux (продолжая связанный пример) в действительности не является монолитным. Он имеет модульное пользовательское пространство поверх монолитного ядра, пользовательское пространство, которое поставляется с множеством отдельных утилит. Кроме случаев, когда это не так.

6
ответ дан 30 November 2019 в 17:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: