package object使えばそれっぽいことできますが、package objectはpackage内のみなので、相対importを使うことによって、もっとひたすら簡略化するためのもの
- 自分のライブラリなり、アプリケーションの「一番上のpackageで」package objectを定義
- かなり大量にどこでも使うようなものを、そのpackage objectに全部押し込める*1
- 他のファイルでは、package文を2行に分けて書く
packege文を2行に分けるというのは、そうすると相対importをしたことと同等の効果があり、上位のpackageのpackage objectで定義したものが、スコープに入ります。(たしか、2.8から導入された機能? http://d.hatena.ne.jp/kmizushima/20100223/1266940545#c1266977695 )
以下サンプル
まぁpackage2行に書くのと、
代わりに例えば「Imports」っていうobject作っておいて、どのファイルでも「import hoge.Imports._」と書く、という決まりにする
のでは、それほど記述量は変わらないのですが、importのオブジェクトに名前つけたくないとか、そういう細かい気持ちの問題です、たぶん。
「packege文を2行に分けることにより相対importと同様の効果を得る」パターンは、Scala本体のcollectionで使われてます
*1:分けて定義しておいて、そいつに継承させるのもあり