Bridge
The bridge design pattern allows you to separate the abstraction from the implementation. In the bridge pattern there are 2 parts, the first part is the Abstraction, and the second part is the Implementation.  The bridge pattern allows the Abstraction and the Implementation to be developed independently, and the client code can access only the Abstraction part without being concerned about the Implementation part.