DRY vs DDD principles – what is better in long run?

In the process of implementing my domain, I cannot decide is it better to have single class with following method signature:

void doSomething(Class1 param1, Class2... param2) 

Or to have two separate classes and each to have separate method:

Class1{   void doSomething(Class1 param1) }  Class2{   void doSomething(Class1 param1, Class2 param2); } 

In first case, I do not need to create 2 classes (so DRY), but domain concepts are not that expressive as in other example where Class1 and Class2 are actually nouns from domain language. Also with 2 classes, I can limit param2 not to be forwarded to method at all – in first option I would need to detect if param2!=null then exception.

Any thoughts?