Empty Interface Question (relates to Design Patterns)

Hey all, quick opinion question for anybody who cares to sound off. I am doing an implementation of the Command Pattern right now, and thought I might try defining my command structure almost entirely around interfaces. I am running into a problem however with empty interfaces. Let’s say I have the following two interfaces:

IBasicCommand
IComplexCommand

IBasicCommand is simple, just has an execute() method to execute the command, but IComplexCommand is giving me some problems. I need to have IComplexCommand separate from IBasicCommand for the purposes of type-checking when I route the commands, but I don’t have any extra methods I want to declare as public in IComplexCommand; all of the added functionality required by Complex Commands will be handled internally by protected and private functions. Everything works if I just create an empty interface for IComplexCommand, but is this advisable? The GoF implementation of the Command Pattern seems to rely on inheritance, which is odd considering their advocacy of interfaces, so maybe I’m going down the wrong road here.

So, in a nutshell, are empty interfaces for the purpose of type-casting an acceptable strategy? Has anyone else ran into this sort of problem?

Thanks to all who respond,

–EP