Нотатки програміста
Кидаю нотатки й думки з роботи, як Senior Full Stack Developer, Tech Leader, Team Leader і лектор IT) Огляд технологій, пояснення, новини, проходження співбесід, реклама цікавих додатків і компаній, і багато іншого! Для пропозицій: @alex_demko_work
Більше- Підписники
- Перегляди допису
- ER - коефіцієнт залучення
Триває завантаження даних...
Триває завантаження даних...
interface Shape {
void draw();
}
class Circle implements Shape {
public void draw() {
System.out.println("Drawing a circle");
}
}
class Rectangle implements Shape {
public void draw() {
System.out.println("Drawing a rectangle");
}
}
class Triangle implements Shape {
public void draw() {
System.out.println("Drawing a triangle");
}
}
// Абстрактна фабрика для створення геометричних фігур
interface ShapeFactory {
Shape createShape();
}
class CircleFactory implements ShapeFactory {
public Shape createShape() {
return new Circle();
}
}
class RectangleFactory implements ShapeFactory {
public Shape createShape() {
return new Rectangle();
}
}
class TriangleFactory implements ShapeFactory {
public Shape createShape() {
return new Triangle();
}
}
// Використання абстрактної фабрики
public class AbstractFactoryExample {
public static void main(String[] args) {
ShapeFactory factory;
// Створення кола
factory = new CircleFactory();
Shape circle = factory.createShape();
circle.draw(); // Виведе: Drawing a circle
// Створення прямокутника
factory = new RectangleFactory();
Shape rectangle = factory.createShape();
rectangle.draw(); // Виведе: Drawing a rectangle
// Створення трикутника
factory = new TriangleFactory();
Shape triangle = factory.createShape();
triangle.draw(); // Виведе: Drawing a triangle
}
}
У цьому прикладі інтерфейс Shape представляє геометричну фігуру, а його реалізації - Circle, Rectangle та Triangle - представляють конкретні фігури.
Абстрактна фабрика представлена інтерфейсом ShapeFactory, а його реалізації - CircleFactory, RectangleFactory та TriangleFactory - відповідають за створення відповідних фігур.
У AbstractFactoryExample ми створюємо різні фабрики та використовуємо їх для створення та виведення різних геометричних фігур.
Загалом, фабричний шаблон проектування є потужним інструментом для покращення організації коду та забезпечення його гнучкості 😌
Він знаходить своє застосування в різних областях програмування, від обробки даних до графічних інтерфейсів)
Якщо ти насолоджуєшся моїми постами, донат допоможе мені віддавати більше часу на створення якісного контенту 🤗
5408810040380635
#pattern #js #python #java// Класи для створюваних об'єктів
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
getInfo() {
return `Car: ${this.make} ${this.model}`;
}
}
class Bike {
constructor(brand) {
this.brand = brand;
}
getInfo() {
return Bike: ${this.brand};
}
}
// Проста фабрика
class VehicleFactory {
createVehicle(type, ...args) {
switch (type) {
case 'car':
return new Car(...args);
case 'bike':
return new Bike(...args);
default:
throw new Error('Invalid vehicle type');
}
}
}
// Використання простої фабрики
const factory = new VehicleFactory();
const car = factory.createVehicle('car', 'Toyota', 'Camry');
console.log(car.getInfo()); // Виведе: Car: Toyota Camry
const bike = factory.createVehicle('bike', 'Trek');
console.log(bike.getInfo()); // Виведе: Bike: Trek
У цьому прикладі VehicleFactory є простою фабрикою, яка має метод createVehicle
Він приймає тип транспортного засобу (машина або велосипед) і необхідні параметри для створення потрібного об’єкта
Залежно від переданого типу, фабрика створює відповідний об’єкт (Car, або Bike) і повертає його)
Після отримання об’єктів від фабрики, ми можемо викликати метод getInfo(), який виводить інформацію про транспортний засіб (цей метод ми писали в класах Car та Bike) 😉const A = {
methodA() {
console.log('Method A');
}
};
const B = Object.create(A);
B.methodB = function() {
console.log('Method B');
};
B.methodA(); // Викличе "Method A"
B.methodB(); // Викличе "Method B"
Прототипи є ключовим поняттям у JavaScript та лежать в основі спадкування об'єктів та прототипно-орієнтованого програмування в цій мові!
Коли ти використовуєш функціональність таких обʼєктів ю, як: FormData, Number, Math, Date та інші - ти використовуєш їх властивості, які прописані в ПРОТОТИПІ!!!
Так що, запамʼятай: JavaScript створений на прототипах 😉
Ну що ж) на сьогодні це все 😉
Якщо ти насолоджуєшся моїми постами, донат допоможе мені віддавати більше часу на створення якісного контенту 🤗
5408810040380635
#js
$a = 5; // 0101
$b = 3; // 0011
$result = $a & $b; // 0001 (результат: 1)
Насправді, це більше для того, щоб ти знав, що ж така річ як побітовість (ще одна тема з програмування, яку ти можеш вивчити 😉)
Ще, не менш важливою властивістю амперсанду є його використання для передавання декількох параметрів у посиланні 😌
Наприклад, як тут я зробив з HTML:
<a href="page.php?category=5&page=3">Перейти до 5-ї категорії на 3-їй сторінці</a>
У цьому випадку амперсанд вказує на ще один параметр “page”, який ми передали 😉
І ось, найцікавіша, можливість, яку ти, можливо, не знав!
Амперсанд використовується для передачі змінних по ПОСИЛАННЮ
Це дозволяє змінювати значення змінної всередині функції і мати ці зміни видимими за межами функції!
Приклад:
function increment(&$num) {
$num++;
}
$value = 10;
increment($value);
echo $value; // Виведе 11
Але пам'ятай!!!
Що використання амперсанду для передачі по посиланню може бути потенційно небезпечним, оскільки це може призвести до неочікуваної зміни значення змінної
Так що, використовуй її обережно 😉
Отже, амперсанд у PHP має кілька важливих завдань, включаючи побітові операції, доповнення URL-посилань та передачу змінних по посиланню
Розуміння цих особливостей допоможе ефективно використовувати цей символ у твоєму коді 😌
Бажаю, приємної клавіатури під рукою!!! 😉
Якщо ти насолоджуєшся моїми постами, донат допоможе мені віддавати більше часу на створення якісного контенту 🤗
5408810040380635
#web #php #c #swiftLog in to Facebook to start sharing and connecting with your friends, family and people you know.
Боятися співбесід може бути звичайною реакцією, особливо якщо ви новачок або маєте обмежений досвід у цьому напрямку. Підготували для вас декілька порад, які…
На вашому тарифі доступна аналітика тільки для 5 каналів. Щоб отримати більше — оберіть інший тариф.