<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Interfaces on Artur Rios Lab</title><link>https://lab.artur-rios.tech/tags/interfaces/</link><description>Recent content in Interfaces on Artur Rios Lab</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 21 Oct 2026 00:04:00 +0000</lastBuildDate><atom:link href="https://lab.artur-rios.tech/tags/interfaces/index.xml" rel="self" type="application/rss+xml"/><item><title>What Is the Interface Segregation Principle? Fat Interfaces, Role Interfaces and the Clients That Shape Them</title><link>https://lab.artur-rios.tech/concepts/interface-segregation-principle/</link><pubDate>Wed, 21 Oct 2026 00:04:00 +0000</pubDate><guid>https://lab.artur-rios.tech/concepts/interface-segregation-principle/</guid><description>&lt;p&gt;An invoice printer needs to read one order. In many codebases it is handed an&#10;object that can also save orders, cancel them, total the month&amp;rsquo;s revenue and&#10;export everything to a spreadsheet, because that is the interface the order&#10;store happens to have. The printer never calls those methods, but it depends on&#10;them all the same: when one of them changes, the printer is rebuilt, retested&#10;and redeployed, and anyone writing a stand-in for it in a test has to implement&#10;all five. The &lt;strong&gt;interface segregation principle&lt;/strong&gt; is the rule against that&#10;arrangement, and the fourth of the five SOLID principles this&#10;&lt;a href="../../series/solid/"&gt;series&lt;/a&gt; covers. This article explains&#10;what it says, where it came from, what a fat interface costs, how to split one&#10;into interfaces shaped by their clients, and where splitting stops paying.&#10;Every output shown here was produced by running the code on Windows 11, with&#10;Python 3.14.6 and with the .NET 10 SDK, not written by hand.&lt;/p&gt;</description></item></channel></rss>