Парадигмы программирования — это теории или идеи, которые помогают формировать различные языки, которые вы используете для создания программного обеспечения. Они представляют собой основные характеристики языка программирования, определяющие его поведение.

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

1. Императивное программирование

Императивная парадигма — один из самых ранних подходов к программированию, появившийся еще в 1950-х годах. Эта парадигма сильно зависит от использования переменных, команд и процедур.

Императивное программирование использует команды для проверки и обновления переменных, сохраняя состояние в программе. Затем комбинация команд создает процедуру. Абстракция данных играет решающую роль в представлении данных, что облегчает слабую связь.

Одним из самых популярных языков, использующих императивную парадигму, является C. Этот язык программирования поддерживает только функциональные процедуры.

instagram viewer

Пример императивной программы

#включать 
#включать

структура Клиент
{
интервал идентификатора клиента;
char Номер Заказа[20];
Имя символа[30];
плавающая сумма заказов;
};

пустая функция ()
{
struct Customer John = {4000, "HK1001", "John Doe", 200.00};
struct Customer Jane = {4001, "HK1002", "Jane Doe", 600,00};

memcpy (Джейн. Имя, «Джейн Джонс», 10);

printf ("Общая стоимость заказа %s с номером %s: $%.2f",Джейн. Имя, Джейн. Номер заказа, Джейн. Весь заказ);
}

Программа C выше создает Клиент структура. То структура type — яркий пример абстракции данных в C.

Программа демонстрирует, как команды могут создавать, обновлять и отображать состояние — с помощью Джейн структурная переменная. Все эти команды находятся в основной() функция, которая в целом представляет собой процедуру, определяющую, сколько денег клиент должен заплатить за заказ.

Выполнение приведенной выше программы приведет к следующему выводу в вашей консоли:

Общая стоимость заказа Джейн Джонс под номером HK1002 составляет: 600,00 долларов США.

2. Объектно-ориентированное программирование

Парадигма объектно-ориентированного программирования зародилась в 1990-х годах. Эта парадигма является потомком императивной. Однако объектно-ориентированная парадигма хранит состояние в объектах, а не в переменных.

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

Класс — это основной компонент объектно-ориентированной программы. Некоторые классы наследуют свойства и операции от других классов. Программисты описывают это как отношения родитель-потомок. Он подпадает под категорию полиморфизма подтипа.

Классы содержат инструменты для скрытия и защиты конфиденциальных данных посредством инкапсуляции. После того как вы определили класс, вы можете использовать его для создания объектов.

Тремя наиболее популярными языками программирования, использующими объектно-ориентированную парадигму, являются Java, C++ и Python.

Пример объектно-ориентированной программы

Это приложение демонстрирует большинство возможностей объектно-ориентированного языка программирования Java. Определенный тип клиентов наследует поведение от более общего типа. Все клиенты реализуют интерфейс. Конкретный тип клиента переопределяет метод из интерфейса.

Файл Discountable.java

публичныйинтерфейс Скидка {

публичныйпустота grandTotal (String orderNumber, двойной Всего);

}

Приведенный выше код создает интерфейс. В Java интерфейс еще один пример полиморфизма. Это позволяет сущностям, которые не связаны напрямую, получать доступ к одним и тем же свойствам, таким как Общая сумма метод. Это приложение ориентировано на клиентов, но класс сотрудников также может использовать интерфейс Discountable.

Файл Customer.java

публичныйсорт Клиент реализует Скидка {
защищенныйинт Пользовательский ИД;
защищенный Строка имя_клиента;
защищенный Строковый код клиента;

публичный Клиент() {
это.customerId = 0;
это.customerName = "";
это.customerCode = "";
}

публичный Клиент(инт идентификатор клиента, строка имя_заказчика, строка код_заказчика) {
это.customerId = идентификатор клиента;
это.customerName = имя_клиента;
это.customerCode = код клиента;
}

публичныйинт получить идентификатор клиента () {
вернуть Пользовательский ИД;
}
публичныйпустота setCustomerId(инт Пользовательский ИД) {
это.customerId = идентификатор клиента;
}
публичный Строка getCustomerName() {
вернуть имя покупателя;
}
публичныйпустота setCustomerName (строка имя_клиента) {
это.customerName = имя_клиента;
}
публичный Строка getCustomerCode() {
вернуть Код клиента;
}

публичныйпустота setCustomerCode (строка customerCode) {
это.customerCode = код клиента;
}

публичныйдвойной customerType (строка customerCode) {
двойной скидка = 0;

если (CustomerCode.toLowerCase().equals("pre")) {
скидка = 0,10;
} ещеесли (customerCode.toLowerCase().equals("gen")) {
скидка = 0,02;
} ещеесли (customerCode.toLowerCase().equals("новый")) {
скидка = 0,05;
}
вернуть скидка;
}

@Override
публичныйпустота grandTotal (String orderNumber, двойной Всего) {

двойной скидка = тип клиента (Код клиента);
двойной Процент скидки = общая * скидка;
двойной finalTotal = total - DiscountPercentage;

Система.вне.println("Для "+ getCustomerName() + " Номер заказа " + orderNumber + " общая сумма: $" + finalTotal);
}

}

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

Файл NewCustomer.java

публичныйсорт Новый покупатель расширяет Клиент {
публичный Новый покупатель() {
супер();
}

публичный Новый покупатель(инт идентификатор клиента, строка имя_заказчика, строка код_заказчика) {
супер(customerId, customerName, customerCode);
}

}

Приведенный выше код создает Новый покупатель класс, расширяющий Клиент сорт. Этот Класс Java использует наследование представлять отношения родитель-ребенок с Клиент сорт. То Новый покупатель является дочерним в отношении, поэтому он имеет доступ ко всем свойствам в классе Customer. Он импортирует атрибуты класса Customer, используя супер() метод.

Файл App.java

публичныйсорт Приложение {
публичныйстатическийпустота основной (строка [] аргументы) {
Клиент Джейн = новый NewCustomer (4001, «Джейн Джонс», «новый»);
Джейн.grandTotal("HK1002", 600);
}
}

Приведенный выше код создает исполняемый файл Приложение сорт. Этот класс создает объект Customer (Джейн) и с помощью полиморфизма делает Джейн Новый покупатель. Наконец, он генерирует общую сумму заказа Джейн. Выполнение приведенной выше программы сгенерирует следующий вывод в консоли:

Для номера заказа Джейн Джонс HK1002 общая сумма составляет: 570,0 долларов США.

3. Функциональное программирование

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

JavaScript — один из самых популярных языков функционального программирования.

Пример функциональной программы

постоянный клиент = {
Идентификационный номер: 1002,
Имя: 'Джейн Джонс',
Код клиента: «новый»
}

const main = (клиент, функция, значение) => {
var total = func.apply (null, [customer. CustomerCode, значение ]);
console.log(`${клиент. Имя} всего: ${всего}`);
}

const grandTotal = (CustomerCode, итог) => {
если (CustomerCode == "новый") {
скидка = итого * 0,05;
mainTotal = итог - скидка;
вернуть основной итог;
} иначе если (CustomerCode == "pre") {
скидка = итого * 0,10;
mainTotal = итог - скидка;
вернуть основной итог;
}
}

main (Клиент, grandTotal, 600);

Вышеупомянутая программа JavaScript имеет литерал объекта и две функции. Он объявляет каждую из функций как выражение, используя Функция стрелки JavaScript. То основной() функция является функцией высшего порядка. Это занимает Общая сумма в качестве одного из своих аргументов, а затем вызывает эту функцию. Это также пример параметрического полиморфизма.

То Общая сумма() функция содержит несколько выражений, и Клиентобъект является примером абстракции данных. Вышеприведенная программа генерирует следующий вывод в консоли:

Всего Джейн Джонс: 570 долларов.

Сложность языков программирования

Язык программирования может воплощать концепции одной парадигмы программирования, но это не означает, что он ограничен одной парадигмой. Многие популярные языки программирования (такие как Python, Java, JavaScript и C++) являются языками с несколькими парадигмами.

Некоторые парадигмы программирования, такие как императивная и объектно-ориентированная парадигмы, также связаны между собой. Но, несмотря на это родство, есть и существенные различия.

Объектно-ориентированное программирование vs. Процедурное программирование: чем они отличаются?

Читать далее

ДелитьсяТвитнутьДелитьсяЭл. адрес

Похожие темы

  • Программирование
  • Программирование
  • Функциональное программирование
  • Объектно-ориентированное программирование
  • Языки программирования

Об авторе

Кадейша Кин (опубликовано 51 статья)

Кадейша Кин (Kadeisha Kean) — разработчик программного обеспечения полного стека и технический/технологический писатель. У нее есть явная способность упрощать некоторые из самых сложных технологических концепций; производство материала, который может быть легко понят любым новичком в технологии. Она увлечена писательством, разработкой интересного программного обеспечения и путешествиями по миру (с помощью документальных фильмов).

Еще от Кадейши Кин

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться