All of this is okay, but it's not production ready. This is what real production code looks like:
SuckableFactory suckableFactory = new SuckableFactory();
Suckable balls = suckableFactory
.setShape(SuckableShapes.round)
.setCount(2)
.create();
SuctionProvider mouth = SuctionProvider.getInstance();
SuckerFactory suckerFactory = new SuckerFactory();
Sucker sucker = SuckerFactory.create():
sucker.setSuctionProvider(mouth);
sucker.setSuckable(balls);
sucker.setIntensity(SuckerSuctionIntensities.medium);
sucker.suckSuckable();
Python port: