design-patterns

Quick-reference guide to software design patterns with concise Dart examples.

View project on GitHub

Used to create instances of families of related or dependant objects, based on platform or app state.

Can simplify if-else hell

class AudioPlayerFactory {
    AudioPlayer createAudioPlayer() {
        if (Platform.isIOS) {
            return ClosedSourceAudioPlayer();
        } else {
            return OpenSourceAudioPlayer();
        }
    }
}