subject 0.1.4 copy "subject: ^0.1.4" to clipboard
subject: ^0.1.4 copied to clipboard

SDKDart
outdated

Automatically generates an observable interface for any class. Observer Pattern implementation for Dart, generalized using mixins and multiple alternative interfaces.

example/main.dart

import 'package:subject/observer.dart';

void main() {
  final subject = Subject<String>();

  final observer =
      Observer<String>((subject, state) => print('Observer 1: $state'));
  final streamObserver = Observer.stream<String>()
    ..listen((state) => print('Observer 2: $state'));

  subject.attach(observer);
  subject.attach(streamObserver);

  subject.notify('Hello World!');
  print(
      'There are ${subject.observers.length} observers attached to the subject.');

  print('Detaching observer...');
  subject.detach(observer);

  subject.notify('Hello World, again!');

  /* [Output]
    Observer 1: Hello World!
    Observer 2: Hello World!

    There are 2 observers attached to the subject.
    Detaching observer...

    Observer 2: Hello World, again!
  */
}
3
likes
140
points
279
downloads
screenshot

Publisher

verified publisherdrafakiller.com

Weekly Downloads

Automatically generates an observable interface for any class. Observer Pattern implementation for Dart, generalized using mixins and multiple alternative interfaces.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

analyzer, build, code_builder, source_gen

More

Packages that depend on subject