design pattern in android