Рубрики
Laravel Laravel-project MVC

Контроллер

MVC
технология

V отвечает за различные html шаблоны
M отвечает за различные файлы, которые будут служить с базой данных

C служит для объединения V и M
происходит объединение шаблонов и моделей (базой данных)

Рубрики
ООП "Паттерны" Паттерн - структурный

Паттерн — Proxy

Заместитель
Сурогат

сделать дополнительные функции через интерфейс взаимодействия

class Program
{
 static void Main
 {
  IHuman Bruce = new Operator();
  IHuman surrogate = new Surrogate(Bruce);
  surrogate.Request();
 }
}
interface IHuman
{
 void Request();
}
class Operator:IHuman
{
 public void Request()
 {
  Console.WriteLine("Operator");
 }
}
class Surrogate:IHuman
{
 IHuman operator;
 public Surrogate(IHuman operator)
 {
  this.operator=operator;
 }
 public void Request()
 {
  this.operator.Request;
 }
}
Рубрики
ООП ООП "Интерфейс" ООП принцип "Полиморфизм"

ООП Интерфейс «Понятие»

  • определить контракт взаимодействия между классами
  • определяем поведение, которое впоследствии будет реализовано в каком-то классе
  • как будут вести себя наследники без каких-либо деталей
  • нет ни какой реализации
  • абстрактные методы
  • не может быть конструкторов
  • не может содержать поля классов
  • описывается сигнатура методов
  • публичный контракт взаимодействия
    по умолчанию все члены интерфейса имеют модификатор public
  • Полиморфизм
    Передаётся тип данных — это тип интерфейса
    в качестве параметра будет принимать объект класса, который у нас будет реализовывать интерфейс.
  • интерфейс может содержать свойство
    свойство — это методы, которые маскируются
Рубрики
C# основы.ООП ООП ООП "Класс" ООП принцип "Инкапсуляция" ООП принцип "Наследование" ООП принцип "Полиморфизм"

Общий Класс

общий класс создаётся благодаря наследованию
базовый класс класс, который наследуется

Характерные Особенности

присущие множеству связанных элементов

Рубрики
Object Pool Unity Синглтон

Использование пула объектов на примере

BadShooting.cs
не эффиктивность без использования пула объектов

youtube

в каждом Update
инстализируется объект «пуля»
назначается объекту родитель
вызывает метод, который устанавливает начальную позицию и поворот

public class BadShooting:MonoBehaviour;
{
[SerializableField]
private GameObject bullet;

[SerializableField]
private Transform bulletParent;

[SerializableField]
private Vector3 bulletSpawnPosition;

private void Update()
{
var bullet=GetBullet();
bullet.transform.SetParent(bulletParent);

bullet.GetComponent<BadBullet>().OnCreate(bulletSpawnPosition,transform.rotation);
}

private GameObject GetBullet()
{
return Instantiate(bullet);
}

}

BadBullet.cs
пуля летит прямо и через 3 секунды уничтожается

public class BadBullet:MonoBehaviour;
{
private float lifeTime=3;
private float currentLifeTime;
private float speed=10;

public void OnCreate(Vector3 position, Quaternion rotation)
{
transform.position=position;
transfor.rotation=rotation;
currentLifeTime=lifeTime;
}

void Update()
{
transform.Translate(Vector3.forward*Time.deltaTime*speed);

if ((currentLifeTime-=Time.deltaTime)<0)
Destroy(gameObject);
}
}