@silverpill >It is not the same thing because you skip one expensive operation: determining the subtype of activity.
This is an expensive operation, but in a different way. Determining the subtype isn't expensive computationally, it's expensive on storage, since you now need an Object type index in the database. The Activity subtype is the same as Object type that you fetch from the DB first.
>Is that a problem? I already have different parsers and different builders for different activities.
Depends, it's increased code complexity that previously didn't need to exist. Keeping the same Activity type results in more code for every new subtype, but a completely new Accept* type probably results in even more code depending on codebase.