Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Bektaş IŞIK

Grup ADEN

DIP-DI-IoC

Dependency Inversion Princible-Depenedency Injection-Inversion of Control

Dependency Inversion Princible

  • Prensip
  • High class - low class
  • loose coupling - tight coupling
  • interface - abstract class

DIP

Dependency Injection

DI

  • Pattern
  • High class - low class
  • loose coupling - tight coupling
  • constructor, getter-setter metodları, interface vs component
  • Fayda - Zarar

Inversion of Control

IoC

  • Prensip
  • farklı türden kontroller arasındaki bağımlılığı azaltma
  • DIP 'den daha geniş bir scope
  • akış, interface, bağımlılık vs.
  • DI bu prensibi kullanarak yazılan bir patterndir

IoC Container

  • Framework
  • DI patterne uygun
  • Soyutlamaları otomatik oluşturulur

.Net Core IoC

.Net Core Ioc Management

Services.AddSingleton<IMyDependency, MyDependency>();

Singleton

Services.AddScoped<IMyDependency, MyDependency>();

Scope

Services.AddTransient<IMyDependency, MyDependency>();

Transient

Spring Boot SRP

Spring Boot SRP Management

Guru

Annotation

code

Factory Pattern

Entity

Interface vs

Abstruct Class

Interface vs

Abstract Class

Abstract Class

  • Değişkenler soyut olamaz ancak yöntemler soyut olur.
  • Eğer bir sınıf üst sınıfın yöntemlerinden birini bile içermiyorsa o sınıfta soyut olur.
  • ................ ClassName extends AbstractClassName
  • extends’ten sonra sadece bir sınıf olur.
  • metodların içerisini doldurabiliriz.
  • hızlı
  • sınıflarla is-a ilişkisi vardır

Abstruct Class

Interface

  • Bir arayüz içinde hiçbir özellik bulundurmaz. İçerisinde değişken olmaz.
  • Soyut sınıflar gibidir. Ama sınıf değildir.
  • Arayüzün alt arayüzleri olabilir. Herşeyi miras olarak kullanabilir.
  • ................ ClassName implements IInterfacename
  • implements’ten sonra istediğimiz kadar arayüz olur.
  • metodların içerisini dolduramayız
  • yavaş
  • sınıflarla can-be ilişkisi vardır.

Interface

Naming Standard

  • naming standartları yazıldığı dile özeldir. bu standartları kullanabilmemizin sebebi okunabilirliği arttırmaktır.
  • PascalCase
  • camelCase
  • değişken isimleri
  • class isimleri
  • sabit değişkenler Screaming Snake Case
  • boolean için isHigh
  • package-namingspace . ile ayrılır
  • interface başlarına I
  • anlamlı isimler
  • kısaltmalardan kaçın
Learn more about creating dynamic, engaging presentations with Prezi