私は醜いものを構造体やシンプルなソリューションを使ってスマートに置き換えたいと思います。getterとsetterでクラスまたは構造体を使用して、関係で計算されたプロパティを持つようにしました
私のクラスには、構成することができるメソッドがたくさんありますが、私はそれが気に入らないのです。
私は想像力のために、いくつかのメソッドを持つクラスを作成しました。
の例では、メンバー間の関係についてですが、誰と、分散された予算)、カウント:
class Budget {
var distribution : (Int, Double) = (0, 0.0) // (number of members, sum per member) as tuple
func getBudget(distribution: (Int, Double)) -> Double {
let members = distribution.0
let perMember = distribution.1
return Double(members) * perMember
}
func ratioBySumPerMember(sum: Double) -> Double {
let budget = getBudget(distribution: distribution)
return sum/budget
}
func sumPerMemberByBudget(budget: Double) -> Double {
let members = distribution.0
return budget/Double(members)
}
func sumPerMemberByRatio(ratio: Double) -> Double {
let budget = getBudget(distribution: distribution)
return ratio * budget
}
func ratioByMembersCount(members: Int) -> Double{
return Double(members)/100.0
}
func getBudgetBySumPerMember(sum: Double) -> Double {
distribution.1 = sum
let budget = getBudget(distribution: distribution)
return budget
}
/// ... etc
}
私はいくつかのスマートな計算式のように提供するために専用されている任意のプロパティ/構造体を、確立したいと思います。
結果を入力するだけでなく、入力値から結果を取得し、入力値を取得できる必要があります。誰にでもアイデアはありますか? 短ければ短いほど良い。可能であれば...