В чем разница между классом и библиотекой? - PullRequest
8 голосов
/ 10 февраля 2011

Я погуглил, и мне сообщили, что библиотека состоит из нескольких соответствующих классов. Но в Codeigniter я обнаружил, что в каждой библиотеке практически только один класс. Извините за мои ограниченные знания для этого, но я был бы признателен, если бы вы могли немного рассказать мне об этом. Большое спасибо!

Ответы [ 3 ]

10 голосов
/ 10 февраля 2011

Различие семантическое.

A Класс представляет собой реализацию определенного компонента функциональности (обычно полностью инкапсулирующий функциональность.

A Библиотека представляет собой набор функциональных единиц (или только один), которые добавляют функциональность. Обратите внимание, что я пытался держаться подальше от слова class в этом определении. Библиотеки могут быть процедурными, функциональными или ООП.не умаляет тот факт, что это библиотека. Классы просто помогают абстракции при работе с ООП.

A Framework - это библиотека, которая предоставляет выбор архитектуры для того, как вы пишете код.

Таким образом, каждый фреймворк - это библиотека. Не каждая библиотека - это фреймворк. Сам CodeIgniter можно использовать в качестве фреймворка или библиотеки. Разница в том, что если вы позволяете библиотекам управлять своей архитектурой, вы используете фреймворк.Если вы не используете бит архитектуры, это библиотека.

Это определенно педантичная разница, ноВеликолепный.Как грубое упрощение: если вы занимаетесь формальной архитектурой и понимаете, почему все устроено так, как для вашего приложения, вы используете его как библиотеку.Если вместо этого вы строите это таким образом, потому что именно так CI это делает, то использует фреймворк.Оба имеют значительные преимущества, но стоит понимать разницу.

4 голосов
/ 10 февраля 2011

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

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

CodeIgniter имеет свое собственное определение «библиотеки», в этом случае он просто называет каждый сторонний класс приложений своей собственной библиотекой. Несмотря на это, вы можете включать другие классы в тот же файл библиотеки, если у вас есть хотя бы один класс с тем же именем, что и файл библиотеки.

1 голос
/ 10 февраля 2011

Проверка CodeIgniter docs :

Когда мы используем термин «библиотеки», мы обычно имеем в виду классы, которые находятся в каталоге библиотек и описаны в справочнике классов данного руководства пользователя. В этом случае, однако, мы вместо этого опишем, как вы можете создавать свои собственные библиотеки в своем каталоге application / library для обеспечения разделения между вашими локальными ресурсами и ресурсами глобальной инфраструктуры.

Я не считаю «библиотеку» специфичной для определенного числа классов или файлов. Относится ли эта цитата к конкретному использованию, которое вас смутило?

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