solid principle with Java Example