複数の変数の無効性に基づいてアクションを実装するための好ましい方法は何ですか:
すなわち:
invalid_get() {
return a_invalid || b_invalid || c_invalid;
}
a_invalid_set(v) {
a_invalid=v;
if(v) {
validate_add();
} else {
validate_remove();
}
}
function validate_remove() {
if(!invalid_get()) {
validate_remove_do();
}
}
また:
var invalids_num:Int;
function a_invalid_set(v) {
a_invalid=v;
if(v) {
++invalids_num;
validate_add();
} else {
--invalids_num;
validate_remove();
}
}
validate_remove() {
if(invalids_num==0) {
validate_remove_do();
}
}
0 に対する int チェックの方が高速であり、間違いなく正しいパターンであると推測しています。これは、多数のプロパティに対して確かに当てはまります。