# Design Patterns: Abstract Factory

DevFeed: [Design Patterns: Abstract Factory](<https://devfeed.tech/articles/design-patterns-abstract-factory-40670.md>)

Original publisher: [Read original article](<https://radek.io/posts/design-patterns-abstract-factory/>)

Published: 2011-07-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [abstract class](<https://devfeed.tech/topics/abstract-class.md>), [Software](<https://devfeed.tech/topics/software.md>), [class](<https://devfeed.tech/topics/class.md>), [classes](<https://devfeed.tech/topics/classes.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Code](<https://devfeed.tech/topics/code.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Qt](<https://devfeed.tech/topics/qt.md>), [GTK](<https://devfeed.tech/topics/gtk.md>), [Windows](<https://devfeed.tech/topics/windows.md>)

Tags: [abstract-class](<https://devfeed.tech/tags/abstract-class.md>), [code](<https://devfeed.tech/tags/code.md>), [components](<https://devfeed.tech/tags/components.md>), [design](<https://devfeed.tech/tags/design.md>), [design-patterns](<https://devfeed.tech/tags/design-patterns.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [example](<https://devfeed.tech/tags/example.md>), [gnome](<https://devfeed.tech/tags/gnome.md>), [interface](<https://devfeed.tech/tags/interface.md>), [interface-design](<https://devfeed.tech/tags/interface-design.md>), [kde](<https://devfeed.tech/tags/kde.md>), [linux](<https://devfeed.tech/tags/linux.md>), [object](<https://devfeed.tech/tags/object.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [platform](<https://devfeed.tech/tags/platform.md>), [software](<https://devfeed.tech/tags/software.md>), [software-design](<https://devfeed.tech/tags/software-design.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-components](<https://devfeed.tech/tags/ui-components.md>), [user-interface](<https://devfeed.tech/tags/user-interface.md>)

## AI overview

This tutorial explains the Abstract Factory design pattern, which encapsulates the creation of related families of objects without specifying their concrete classes. It uses a cross-platform user-interface example in which separate factories create components for KDE/Qt and GNOME/Gtk environments.

## Source excerpt

Software design patterns by example