From Fedora Project Wiki

Some D-Bus thoughts.

Don't use duplicate method/property/signal names on objects

D-Bus implementations in dynamic languages can make use of D-Bus Introspection and create local proxy objects that reflect the remote object in an object-oriented way. This only works if D-Bus follows the language limitations that are the same for most languages.

Don't use different D-Bus interfaces for different object types

It's useless, especially for derived types. Think of D-Bus interfaces as of just ordinary namespaces. Usually, one is enough for the whole application.

Use D-Bus service name (busname) also as interface name

Keep things simple. See above.