Logo

dev-resources.site

for different kinds of informations.

Dart Abstract and Factory Keywords

Published at
1/5/2023
Categories
flutter
dart
abstract
factory
Author
gulsenkeskin
Categories
4 categories in total
flutter
open
dart
open
abstract
open
factory
open
Author
12 person written this
gulsenkeskin
open
Dart Abstract and Factory Keywords

abstract

Örneklenemeyen bir soyut sınıf (abstract class) tanımlamak için abstract değiştiriciyi kullanın. Soyut sınıflar, genellikle bazı uygulamalarla arabirimleri(interfaces) tanımlamak için kullanışlıdır. Soyut sınıfınızın somutlaştırılabilir(instantiable) görünmesini istiyorsanız, bir factory constructor tanımlayın.

Abstract sınıflar genellikle abstract method'lara sahiptir.

Abstract bir methodu olan abstract bir sınıf örneği:

abstract class AbstractContainer {
  // Define constructors, fields, methods...

  void updateChildren(); // Abstract method.
}
Enter fullscreen mode Exit fullscreen mode

factory

Factory constructors

Sınıfının yeni bir örneğini oluşturmayan bir constructor tanımlarken factory anahtar sözcüğünü kullanın. Örneğin, bir factory constructor önbellekten(cache) bir örnek(instance) döndürebilir veya bir alt türün(subtype) örneğini döndürebilir.
Factory constructor'larının bir başka kullanım alanı da final değişkenleri başlatmaktır.

İpucu: Bir final değişkeninin geç başlatılmasını ele almanın başka bir yolu da late final kullanmaktır (dikkatlice!).

Aşağıdaki örnekte, Logger factory constructor'ı önbellekten nesneler döndürür ve Logger.fromJson factory constructor'ı JSON nesnesinden bir final değişken başlatır.

class Logger {
  final String name;
  bool mute = false;

  // _cache is library-private, thanks to
  // the _ in front of its name.
  static final Map<String, Logger> _cache = <String, Logger>{};

  factory Logger(String name) {
    return _cache.putIfAbsent(name, () => Logger._internal(name));
  }

  factory Logger.fromJson(Map<String, Object> json) {
    return Logger(json['name'].toString());
  }

  Logger._internal(this.name);

  void log(String msg) {
    if (!mute) print(msg);
  }
}
Enter fullscreen mode Exit fullscreen mode

Not: Fatctory constructor'larının 'this'e erişimi yoktur.

Kaynaklar:
https://dart.dev/guides/language/language-tour#abstract-classes
https://dart.dev/guides/language/language-tour#factory-constructors

factory Article's
25 articles in total
Favicon
Clojure is Awesome!!!
Favicon
Understanding the Factory and Factory Method Design Patterns
Favicon
Factory Design Pattern
Favicon
Things You Want to Ensure When Factory Resetting Your HP Laptop Without a Password
Favicon
The Factory Pattern in C#: Creating Objects the Smart Way
Favicon
Enhance Your Factory Car Radio's Bass with Affordable Upgrades
Favicon
Page Object Model and Page Factory in Selenium
Favicon
Factory functions with private variables in JavaScript
Favicon
Evoluindo nosso Projeto Rails: Integrando o Padrão Factory para Maior Flexibilidade e Organização
Favicon
Javascript Factory Design Pattern
Favicon
Dart Abstract and Factory Keywords
Favicon
Azure Data Factory Overview For Beginners
Favicon
Improve your factories in Symfony
Favicon
Reduzindo a quantidade de Branchs na criação de Objetos com uma estrutura plugável
Favicon
Java 9 Factory Method for Collections: List, Set, Map
Favicon
How to implement simple Factory Pattern in Node.js
Favicon
Factory Design Pattern (simple example implementation in PHP)
Favicon
Spring's FactoryBean Interface
Favicon
Custom Validators for Angular Reactive Forms
Favicon
Design Patterns: Factory
Favicon
Creating objects dynamically with factory pattern in javascript
Favicon
Is this the real life, is this just fantasy?
Favicon
Design Patterns: Factory Pattern, Part 2
Favicon
Patterns in Kotlin: Abstract Factory
Favicon
SUT Factory

Featured ones: