(0) сделать можно любым из описанных тобой способов. И еще сверху десяток наизобретать. А вот для того, чтобы осознанно выбрать правильный вариант, надо знать детали того, как это использоваться будет и посмотреть, как пользователям это будет удобнее вводить.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший