{"id":3337,"date":"2026-01-30T00:00:00","date_gmt":"2026-01-29T23:00:00","guid":{"rendered":"https:\/\/kunden.weissblaumedia.de\/microconsult\/2021\/01\/27\/tb_interface-designs-1\/"},"modified":"2026-02-04T14:33:42","modified_gmt":"2026-02-04T13:33:42","slug":"tb_interface-designs-1","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/tb_interface-designs-1\/","title":{"rendered":"Interface designs and their implementations \u2013 Part 1: Structure and definition"},"content":{"rendered":"<p><strong>The use of software interfaces is a fundamental tool for developing durable and robust software architectures. Therefore, they should be established as early as possible in the architecture to stabilize it. This allows the software architect to ensure rapid task distribution to independent individuals, teams, or locations without further friction.<br \/>\n<\/strong><\/p>\n<p>This article reveals which interface design options you should be familiar with and how they can be implemented in the C and C++ programming languages. The first part introduces interface concepts and different interface types.<\/p>\n<p><!--more--><\/p>\n<h4>The interface concept and design variations<\/h4>\n<p>A software interface represents a sum of <strong>functions<\/strong> with the complete semantics (name, parameters, parameter types, return types, special modifiers) available for access and implementation.<\/p>\n<p>At least one element (accessor) accesses the interface. <strong>Accessor<\/strong> The interface expects (<strong>Required <\/strong>Interface).<\/p>\n<p>At least one element (realization) must implement the interface. <strong>realization<\/strong> provides the interface (<strong>Provided<\/strong> Interface).<\/p>\n<p>The interface serves to decouple the user from the implementation, and more broadly, to decouple architectural elements.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1742\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2021\/01\/Bild1_Interface-Design_Implementierungsansaetze.png\" alt=\"Interface concept\" width=\"700\" height=\"464\" data-wp-pid=\"1742\" \/><\/p>\n<p><em>Image 1<\/em><em>Interface concept<\/em><\/p>\n<p>Different design variations between gripper and interface(s)<\/p>\n<ul>\n<li>When a user accesses one or more interfaces<\/li>\n<li>multiple attackers intervene in one or <em>respectively<\/em> an interface to<\/li>\n<li>multiple users access one or more interfaces<\/li>\n<li>multiple accessors access different interface levels or<\/li>\n<li>Several attackers seize the opportunity <em>respectively<\/em> different interface levels to<\/li>\n<\/ul>\n<p>The following design variants are possible for interface implementation:<\/p>\n<ul>\n<li>an interface with an implementation<\/li>\n<li>an interface with multiple or partial implementations<\/li>\n<li>multiple interfaces in one or more implementation variants<\/li>\n<\/ul>\n<h4>Interface typing<\/h4>\n<p>Interfaces can be thematically divided (depending on the access point), for example, one for configuration, one for diagnostics, and one for normal operation per architectural element. Generally, interfaces can be categorized into three different types:<\/p>\n<ul>\n<li>The <strong>Call interface<\/strong> For example, it offers the accessor from architectural element A functions to read values from architectural element B, write values into it, or trigger algorithms there.<\/li>\n<li>The <strong>Callback interface<\/strong> Actively reports new values or events from architectural element B to A. Regarding the structure, it&#039;s important to note that the implementation of the callback interface spans architectural element boundaries and is located within architectural element A. In conjunction with the call interface, this still results in a... <strong>unidirectional dependency<\/strong> accessible between the two architectural elements A and B.<\/li>\n<li>If the callback registration is performed dynamically at runtime and not statically at compile time, a special element (manager) in the software architecture is responsible for this. This manager can be configured using a special <strong>Callback registration interfaces<\/strong> Register and unregister one or more callback-implementing elements.<\/li>\n<\/ul>\n<p>To implement the structure shown in Figure 2, the following can be done: <strong>Observer pattern<\/strong> apply.<\/p>\n<p>The concrete subject receives a new value. By calling a corresponding function from the observer, the concrete subject reports the new value to all previously registered concrete observers. The observer pattern has since become a very popular pattern for embedded software.<\/p>\n<p><strong><em>\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1743\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2021\/01\/Bild2_Callback-Strukturen.png\" alt=\"Callback structure with registration interface\" width=\"500\" height=\"441\" data-wp-pid=\"1743\" \/><\/em><\/strong><\/p>\n<p><em>Image 2<\/em><em>: Callback structure with registration interface<\/em><\/p>\n<h4>The semantic interface and the functions<\/h4>\n<p>The interface typing is reflected in the assigned &lt;<strong>Stereotypes<\/strong>&gt;&gt; and in the interface names as <strong>Prefix<\/strong> ic (interface), icb (interface callback) and icbreg (interface callback registration). As <strong>Interface name<\/strong> A meaningful and expressive noun is suitable.<\/p>\n<p>The functions are available in all interface types. <strong>public<\/strong> (public).<\/p>\n<p>Functions are programming language dependent. <strong>Modifier<\/strong> such as virtual, const, static, inline, \u2026 to be taken into account.<\/p>\n<p>As <strong>Function names<\/strong> Verb\/noun combinations are suitable. For callback interface functions, the verb &quot;melde&quot; (notify) is appropriate. For callback registration interface functions, the verbs &quot;registriere&quot; (register) and &quot;de-registriere&quot; (unregister) are appropriate.<\/p>\n<p><strong>Function parameters <\/strong>These parameters are optional and should not exceed a maximum of seven to twelve. The direction can be visualized by using `in`, `out`, or `inout` before the parameter name. If the programming language (e.g., C++) supports a default parameter value, this can be specified.<\/p>\n<p>The order of function parameters can affect performance. It&#039;s advisable to start with standard data types, as the compiler can pass these to the function via CPU registers (provided there are free registers). Once a complex data type, such as a structure, is passed by value, the compiler passes this and all subsequent parameters to the function via the stack.<\/p>\n<p>As <strong>Parameter name<\/strong> A noun or a combination of several meaningful and expressive nouns is suitable.<\/p>\n<p><strong>parameter<\/strong>- and<strong> Return types<\/strong> are optionally void. Data types can be either standard data types from the programming language or custom data types that have already been defined, but not data types that will be defined in the future.<\/p>\n<p>For performance reasons, passing a pointer\/reference (not a copy!) is always preferable to passing a value (copy!).<\/p>\n<p>Data type names should be identified by a postfix _t.<\/p>\n<p>As with functions, types also have programming language-dependent modifiers such as const, static, *, &amp;,[], \u2026 .<\/p>\n<h4>Approaches to interface implementation<\/h4>\n<p>In its simplest form, an interface is a header file containing a collection of declared functions. The accessor includes the interface header file to call the interface functions. One or more implementing modules include the header file to implement the interface functions. This simplest implementation approach will not be considered further here. Instead, we will focus on more advanced implementation options in C++ and, where feasible, also in C.<\/p>\n<p>The interface designs presented at the beginning can be implemented using the following approaches:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1755\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2021\/01\/Bild3_Implementierungsansaetze.png\" alt=\"Implementation approaches\" width=\"1558\" height=\"922\" data-wp-pid=\"1755\" \/><\/p>\n<p><em>Image 3: <\/em><em>Implementation approaches<\/em><\/p>\n<p>Not-<strong>polymorphic structure<\/strong> This means that the interface has exactly one implementation, while polymorphic structure implies the presence of multiple implementations. With polymorphic structures, the type of implementation can be determined. <strong>binding<\/strong> Distinguish between object\/function pointer and function. <strong>Dynamic<\/strong> Binding (runtime binding) allows for context-dependent calls to different interface function implementations. In the case of <strong>static<\/strong> Binding (compilation-time binding) means that the compiler binds an interface function implementation that cannot be changed at runtime.<\/p>\n<p>The different implementation approaches can be evaluated as follows:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1754\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2021\/01\/Bild4_Implementierungsansaetze-Bewertung.png\" alt=\"Evaluation of the implementation approaches\" width=\"1559\" height=\"991\" data-wp-pid=\"1754\" \/><\/p>\n<p><em>Image 4: <\/em><em>Evaluation of the implementation approaches<\/em><\/p>\n<p>The choice of the right approach depends heavily on the software quality requirements that need to be met. If high runtime flexibility is required, then polymorphic structures with dynamic constraints are the right choice. If functional safety takes precedence over flexibility, then non-polymorphic structures or polymorphic structures with static constraints are preferable.<\/p>\n<p>The <a href=\"https:\/\/www.microconsult.de\/en\/tb_interface-designs-2\/\" target=\"_blank\" rel=\"noopener\">second part<\/a> This article presents implementation approaches through association, composition, facade, virtual interfaces, non-virtual interfaces, C++ templates, and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Curiously_recurring_template_pattern\" target=\"_blank\" rel=\"noopener\">CRTP<\/a>-Pattern on.<strong><br \/>\n<\/strong><\/p>\n<p><strong>Gain the right knowledge about which interface design options you should be aware of and how these can be implemented in the programming languages C and C++.<br \/>\n<\/strong><\/p>\n<p><strong>MicroConsult offers you professional <a href=\"https:\/\/www.microconsult.de\/en\/all-training-dates-complete-overview\/\" target=\"_blank\" rel=\"noopener\">Training and coaching<\/a> all about the topics <a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/trainings\/analyse-design-und-architektur\/aaaakbl\/\" target=\"_blank\" rel=\"noopener\">Analysis, design and architecture<\/a> and much more \u2013 also in live online format.<\/strong><\/p>\n<h3>Further information<\/h3>\n<p><strong>Training courses on the topic \u2013 also available in live online format:<\/strong><\/p>\n<ul>\n<li><strong><a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/training\/requirements-engineering-schulung-requirements-engineering-und-requirements-management-fuer-embedded-systeme\/aaaacav\/\" target=\"_blank\" rel=\"noopener\">Requirements engineering and management for embedded systems<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/training\/software-architektur-schulung-fuer-embedded-systeme-und-echtzeitsysteme\/aaaadez\/\" target=\"_blank\" rel=\"noopener\">Software architectures for embedded and real-time systems<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/training\/embedded-c-schulung-programmiermethoden-und-tools-fuer-embedded-anwendungen\/aaaacja\/\" target=\"_blank\" rel=\"noopener\">Embedded C++ for Advanced Users: Object-Oriented Programming for Microcontrollers with C++\/EC++<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/training\/embedded-software-design-und-patterns-mit-c\/aaaadte\/\" target=\"_blank\" rel=\"noopener\"> Embedded software design and patterns with C<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/trainings\/analyse-design-und-architektur\/aaaakbl\/\" target=\"_blank\" rel=\"noopener\">Interface design \u2013 analysis, design and architecture<\/a><\/strong><\/li>\n<\/ul>\n<p><strong><a href=\"https:\/\/www.microconsult.de\/en\/all-training-dates-complete-overview\/\" target=\"_blank\" rel=\"noopener\">All training courses &amp; dates at a glance<\/a><\/strong><\/p>\n<p><a href=\"https:\/\/www.microconsult.de\/en\/embedded-and-real-time-software-development\/\" target=\"_blank\" rel=\"noopener\"><strong>MicroConsult expertise in embedded software development<\/strong><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Der Einsatz von Software-Interfaces ist ein elementares Mittel zur Entwicklung von langlebigen und tragf\u00e4higen Software-Architekturen. Deshalb sollten sie so fr\u00fch wie m\u00f6glich in der Architektur etabliert werden, um diese zu stabilisieren. Der Software-Architekt kann so eine schnelle Aufgabenverteilung auf unabh\u00e4ngige Personen, Teams oder Standorte ohne weitere \u201eReibungsverluste\u201c sicherstellen. Welche Varianten Sie beim Interface-Design kennen sollten [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":3338,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[9,16],"tags":[295,120,296,10,297,306,289,290,183,14,87],"class_list":["post-3337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-embedded_und_echtzeit-softwareentwicklung","category-system_und_hardwareentwicklung","tag-c","tag-c-programmierung","tag-entwurfsprinzipien","tag-implementierung","tag-interface","tag-interface-designs","tag-interface-konzepte","tag-interfacedesign","tag-pattern","tag-software-architektur","tag-softwarearchitektur"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Interface-Designs und ihre Implementierungen - Teil 1: Struktur und Definition - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/tb_interface-designs-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Interface-Designs und ihre Implementierungen - Teil 1: Struktur und Definition - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Der Einsatz von Software-Interfaces ist ein elementares Mittel zur Entwicklung von langlebigen und tragf\u00e4higen Software-Architekturen. Deshalb sollten sie so fr\u00fch wie m\u00f6glich in der Architektur etabliert werden, um diese zu stabilisieren. Der Software-Architekt kann so eine schnelle Aufgabenverteilung auf unabh\u00e4ngige Personen, Teams oder Standorte ohne weitere \u201eReibungsverluste\u201c sicherstellen. Welche Varianten Sie beim Interface-Design kennen sollten [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/tb_interface-designs-1\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-29T23:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-04T13:33:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/interfacedesign.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"849\" \/>\n\t<meta property=\"og:image:height\" content=\"566\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rouven Braden\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rouven Braden\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/\"},\"author\":{\"name\":\"Rouven Braden\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/42c82c0317d0fb5d87875c9b1dcab3c1\"},\"headline\":\"Interface-Designs und ihre Implementierungen &#8211; Teil 1: Struktur und Definition\",\"datePublished\":\"2026-01-29T23:00:00+00:00\",\"dateModified\":\"2026-02-04T13:33:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/\"},\"wordCount\":1103,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/interfacedesign.jpg\",\"keywords\":[\"C++\",\"C++ Programmierung\",\"Entwurfsprinzipien\",\"Implementierung\",\"Interface\",\"Interface-Designs\",\"Interface-Konzepte\",\"Interfacedesign\",\"Pattern\",\"Software-Architektur\",\"Softwarearchitektur\"],\"articleSection\":[\"Embedded- und Echtzeit-Softwareentwicklung\",\"System- und Hardwareentwicklung\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/\",\"name\":\"Interface-Designs und ihre Implementierungen - Teil 1: Struktur und Definition - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/interfacedesign.jpg\",\"datePublished\":\"2026-01-29T23:00:00+00:00\",\"dateModified\":\"2026-02-04T13:33:42+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/42c82c0317d0fb5d87875c9b1dcab3c1\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/interfacedesign.jpg\",\"contentUrl\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/interfacedesign.jpg\",\"width\":849,\"height\":566,\"caption\":\"Interfacedesign\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tb_interface-designs-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Interface-Designs und ihre Implementierungen &#8211; Teil 1: Struktur und Definition\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/42c82c0317d0fb5d87875c9b1dcab3c1\",\"name\":\"Rouven Braden\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ec3c96272d5640b10f778a21c8e0535d0a7ddc86a149f7c8d81c26359e93d04d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ec3c96272d5640b10f778a21c8e0535d0a7ddc86a149f7c8d81c26359e93d04d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ec3c96272d5640b10f778a21c8e0535d0a7ddc86a149f7c8d81c26359e93d04d?s=96&d=mm&r=g\",\"caption\":\"Rouven Braden\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Interface designs and their implementations - Part 1: Structure and definition - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/tb_interface-designs-1\/","og_locale":"en_GB","og_type":"article","og_title":"Interface-Designs und ihre Implementierungen - Teil 1: Struktur und Definition - MicroConsult Academy GmbH","og_description":"Der Einsatz von Software-Interfaces ist ein elementares Mittel zur Entwicklung von langlebigen und tragf\u00e4higen Software-Architekturen. Deshalb sollten sie so fr\u00fch wie m\u00f6glich in der Architektur etabliert werden, um diese zu stabilisieren. Der Software-Architekt kann so eine schnelle Aufgabenverteilung auf unabh\u00e4ngige Personen, Teams oder Standorte ohne weitere \u201eReibungsverluste\u201c sicherstellen. Welche Varianten Sie beim Interface-Design kennen sollten [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/tb_interface-designs-1\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2026-01-29T23:00:00+00:00","article_modified_time":"2026-02-04T13:33:42+00:00","og_image":[{"width":849,"height":566,"url":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/interfacedesign.jpg","type":"image\/jpeg"}],"author":"Rouven Braden","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rouven Braden","Estimated reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/"},"author":{"name":"Rouven Braden","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/42c82c0317d0fb5d87875c9b1dcab3c1"},"headline":"Interface-Designs und ihre Implementierungen &#8211; Teil 1: Struktur und Definition","datePublished":"2026-01-29T23:00:00+00:00","dateModified":"2026-02-04T13:33:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/"},"wordCount":1103,"commentCount":0,"image":{"@id":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/interfacedesign.jpg","keywords":["C++","C++ Programmierung","Entwurfsprinzipien","Implementierung","Interface","Interface-Designs","Interface-Konzepte","Interfacedesign","Pattern","Software-Architektur","Softwarearchitektur"],"articleSection":["Embedded- und Echtzeit-Softwareentwicklung","System- und Hardwareentwicklung"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/tb_interface-designs-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/","url":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/","name":"Interface designs and their implementations - Part 1: Structure and definition - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/#primaryimage"},"image":{"@id":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/interfacedesign.jpg","datePublished":"2026-01-29T23:00:00+00:00","dateModified":"2026-02-04T13:33:42+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/42c82c0317d0fb5d87875c9b1dcab3c1"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/tb_interface-designs-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/#primaryimage","url":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/interfacedesign.jpg","contentUrl":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/interfacedesign.jpg","width":849,"height":566,"caption":"Interfacedesign"},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/tb_interface-designs-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Interface-Designs und ihre Implementierungen &#8211; Teil 1: Struktur und Definition"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/42c82c0317d0fb5d87875c9b1dcab3c1","name":"Rouven Braden","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/ec3c96272d5640b10f778a21c8e0535d0a7ddc86a149f7c8d81c26359e93d04d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ec3c96272d5640b10f778a21c8e0535d0a7ddc86a149f7c8d81c26359e93d04d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec3c96272d5640b10f778a21c8e0535d0a7ddc86a149f7c8d81c26359e93d04d?s=96&d=mm&r=g","caption":"Rouven Braden"}}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/3337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=3337"}],"version-history":[{"count":2,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/3337\/revisions"}],"predecessor-version":[{"id":10809,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/3337\/revisions\/10809"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media\/3338"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=3337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=3337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=3337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}