Chcesz stworzyć klasę do generowania profili testowych? Jeśli tak, to sugerowałbym stworzenie:
- klasy ProfileGenerator, której metoda ProfileGenerator::generate() zwracałaby wygenerowany profil,
- klasy RandomSelector, która zwracałaby losowo wybrany ciąg przekazany jej wcześniej,
- klasa ProfileGenerator miałaby atrybut $nameGenerator, który zwracałby losowo wybrane imię. W tej roli miałbyś klasę RandomSelector.
Użycie wyglądałoby mniej więcej tak:
// Argumentem konstruktora jest generator imion
$profileGenerator = new ProfileGenerator(
new RandomSelector(require('names.php'))
);
$profile = $profileGenerator->generate();
W pliku
names.php:
// Tablica imion
);
Oczywiście nic nie stoi na przeszkodzie, aby stworzyć klasy pochodne od RandomSelector, np.
RandomDatabaseSelector itp. Należałoby popracować nad nazewnictwem klas i metod, ale sądzę, że taki kierunek byłby dobry.
Co zyskujesz w ten sposób:
- możesz łatwo użyć kodu ponownie,
- możesz łatwo modyfikować jego działanie,
- możesz łatwo testować każdą jego część jak i całość.