UML 中的埠具有在 IBM® Rational® Rhapsody® 中稱為合約的類型。埠的合約類似於物件的類別。
如果某埠具有合約(例如,介面 I),則該埠會根據定義提供 I。如果您想讓該埠提供其他介面(例如,介面 J),則根據 UML,I 必須繼承 J(因為埠只能有一個類型)。如果是 Rational Rhapsody,則在將 J 新增至所提供的介面清單後,會自動建立此繼承(另一方面,這是具有明確合約 I 的埠)。根據 UML 標準,如果 I 與 J 無關,則必須指定要作為合約的新介面,並且讓此介面同時繼承 I 與 J。
有人發現將特殊介面規格作為埠的合約強制實施是人為的,因此 Rational Rhapsody 會為隱含合約提供記號。這意味著,如果合約是隱含的,則您可以指定提供的及需要的彼此無關的介面清單,而合約介面會維持隱含狀態(無需明確定義要作為模型中埠合約的特殊介面)。
使用隱含合約既有利又有弊。如果該埠連接至僅提供並需要其所提供及需要之介面子集的其他埠,則使用隱含合約更加自然。但是,如果埠連接至完全「反轉」(請查看埠的「特性」視窗中的勾選框)的另一個埠,或者如果其他埠提供並需要相同的介面集,使用隱含合約則有意義。如果系統中僅存在一個此類型或類別的物件,則使用隱含合約類似於從類別個別指定物件或指定具有隱含類別的物件。