Хаки: делайте для них интерфейсы

May 23, 2006 13:43

Собственно, больше можно уже ничего не писать.

Но так как чем длиннее пост, тем лучше, постараюсь раскрыть тему. Хак в программе разрушает ее логичность и универсальность. Но, что делать, их все равно (иногда) создают. В то время, как хаков конечно надо стыдиться и всеми силами души стремиться избавиться от них, совсем не стоит их скрывать.

Допустим, есть интерфейс к подсистеме, но вас он временно не устраивает. Можно конечно начать обращаться к подсистеме в обход этого интерфейса, но я бы просто добавил в API новый метод. С префиксом или суфиксом “hack” в имени. Теперь мы никого не обманываем, интерфейс точно отражает реальную ситуацию. И значит, можно будет легко найти все точки, где программа использует хаки, когда мы наконец до них доберемся.

Противопоказания.
  • Конечно, если это API публичное, может и не стоит поступать так эксцентрично; но ведь большинство интерфейсов внутренние.
  • Если в существующем API и так с трудом можно разобраться, например, оно сводится к морю int-овых констант, то добавлять туда что-нибудь новое, тем более временное я бы побоялся.
  • java

    Previous post Next post
    Up