UserLocatorの問題点を解決するには抽象クラスを導入し、UserLocatorを分離する必要があります。
クラス図を見てください。UserLocatorをAbstractLocatorとUserLocatorに分離してます。
AbstractLocatorをライブラリの階層に、UserLocatorを実クラスの階層に入れます。このように抽象クラスを利用することによりクラスの再利用が促進されます。