معماری ششضلعی یا Ports and Adapters منطق برنامه را از ابزارهای بیرونی جدا میکند. هسته از طریق Port قابلیتها را تعریف میکند و Adapterها آنها را به HTTP، دیتابیس یا سرویس خارجی متصل میکنند.
این جداسازی تست و تعویض زیرساخت را ساده میکند، اما اعمال بیدلیل آن در همه بخشها پیچیدگی اضافه میسازد.
در Hexagonal Architecture میتوان Port ذخیره سفارش را تعریف و Adapter پایگاه داده را جدا پیاده کرد. در تست از Adapter درونحافظهای استفاده میشود.
مثال پورت و آداپتر
سرویس ثبت سفارش میتواند پورت PaymentGateway را تعریف کند و آداپترهای StripeGateway، BankGateway و FakeGateway آن را پیاده کنند. هسته کسبوکار نباید کلاس HTTP Client یا ORM خاص را مستقیماً وارد منطق پرداخت کند.