Też w sumie zależy jak bardzo ma to być zhermetyzowane. Bo możesz przykładowo zrobić tak:
FileOutputStream fos = new FileOutputStream(...);
Serializer s = new Serializer(fos);
s.serialize(object);
Czyli przekazanie przez konstruktor juz zbudowanego OutputStreama. Jako typ parametru konstruktora Serializer, można użyć bazowego OutputStream'a. Uzyskasz wtedy, o ile się nie mylę, dość uniwersalną konstrukcje gdzie będziesz mógł serializować obiekt do dowolnego stream'a.
A jeśli chcesz bardziej to zhermetozywać to możesz przekazać przez konstruktor tylko samą ścieżkę do pliku (czy tam obiekt typu File) i resztę załatwi implementacja klasy Serializer. Wypadało by też wtedy zmienić nazwę tej klasy na FileSerializer.
Wydaje mi się też, że słabo będzie jeśli zrobisz to tak: (tzn. poprzez inicializację w polu klasy)
class Serializer {
private FileOutputStream fos = new FileOutputStream(...);
// reszta kodu.
}