I don't know why there is a special design pattern of Bridge. Could anybody explain it to me? As far as I understand, any components that communicate with each other using a fixed API should be using the bridge design pattern. Actually this is the very exact simple idea of inheritance by contract (in contrast to inheritance by implementation). For example, anything that provides a generic interface to a vendor specific products � JDBC, JMS, JNDI, JavaMail. Is such a fundamental/basical deisgn idea granted a fancy name as Bridge Design Pattern???