1

When I am adding dependencies in Scala, I tend to use mixin trait components for those that are inherit to the class itself. For example, DaoGenerator extends Generator

However, for trait components likes FileIO, it is less straight-forward. If the DaoGenerator class requires it, I tend to make a judgement call. I feel like it can be either a trait component, object, or package object.

If it is part of the classes "responsibility", I add it as trait component. A generator class will most likely need to access file objects in the project so I add it as a trait component.

But if it was any other class, I tend to like to add it as either an object or package object, simply because it is cross-cutting concern. But when do you choose an object over a package object? For logging and configuration, I use package object only because it feels right.

What's your rule of thumb for these cases?

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.