design pattern in oops - Search