design patterns – Adding behaviour and more behaviour…. using more classes for it

This question is related to that one: No trivial god-class refactoring

i have an object and a few methods in it

class MyObject{



and now i want to extend this object with more methods, for example a doSomething3
which acts on the state of that object and maybe on some kind of “own” state.

so there are now different ideas how i can achieve this:

  • add this method + its more membervariables, which are needed, to the existing class
  • create a new class MyObject2 and write it down into this class

if i decide for the secound solution, then the question is how to combine MyObject and MyObject2

  • I can integrate MyObject2 into MyObject

    class MyObject {
      MyObject2 myObject2 = new MyObject2(this)
  • i can let MyObject2 standalone, but when is the question, how the client get access to MyObject2, if he has access to MyObject

  • Third class, that combine the other two

     class ThirdClass {
       MyObject myObject = new MyObject()
       MyObject2 myObject2 = new MyObject2(myObject)

The client have then in option 1) and option 3) the following possibilities:


So i showed 3 possibilities to add behavior with a new class. Are there more?
And are these three possibilities good ones? What possibility do you prefer?
Would you do something fundamentally different?