2015-02-25 12:15 GMT+01:00 Alexander Lisachenko <lisachenko...@gmail.com>:

>
> 2015-02-25 13:37 GMT+03:00 Thomas Gielfeldt <tho...@gielfeldt.dk>:
>
>> Yeah, but the "problem" with this, is that your class' sort method, you
>> have to implement all the possible permutations the flags can produce. This
>> basically just squeezes the 11 functions into 1. The 1 interface with
>> sort() and usort() splits this into 2 functions (8+3). With that in mind,
>> I'm more inclined to choose the 4 interface approach.
>
>
>
> For that case, move all configurations to the several classes and
> configure these flags in the concrete constructors. Interface will be more
> simple:
>
> interface Sortable {
>     const ASC = 1;
>     const DESC = 2;
>
>     public function sort($direction = self::ASC, callable $callback =
> null);
> }
>
> class KeySorter implements Sortable {}
>

That seems a little backwards to me? How would the consumer of e.g.
KeySorter know which sort variations are implemented?

Reply via email to