To have cleaner, dry code in your shared code block you can do something like this:

    {% set entry = entry is defined ?: false %}
    {% set category = category is defined ?: false %}

    {% set model = entry is defined ?: category is defined ?: false %}

Then your two variables `entry` and `category` will always be defined, which allows you to use short ternary syntax in your print expressions. You will also have access to a new var `model`, which holds the Entry Model or the Category Model is one is set.

    <div class="myDefaultClass {{ entry ? ' myEntryClass' }}">
        {{ model.title }}
    </div>