Java interface and implementation naming (or “I” or “Impl”)

How do I name my interfaces and the classes that implement my interfaces? Through much research on the internet and my own gut feelings, this is what I reckon:

I never prefix my interfaces with “I”. The value of coding to interfaces is that you can swap out the implementation with minimal hassle. It means that instead of using implementation specific class names in your code, you use interface names instead – right? So, if I’m going to be using interface names everywhere, I don’t want to have to prefix everything with “I”. Coding to interfaces is a best practice, so I don’t need to explicitly state that I am doing it…It should just happen – which makes the “I” prefix redundant.

Furthermore, the “Impl” suffix is also redundant. Yes, indeed, your dilemma isn’t as simple as picking between the two. Firstly, “Impl” doesn’t translate. “Impl” in other languages has no meaning, and yes I’m talking about Polish and Scala. In Polish (according to Google translate), “implementation” is “realizacja” and in Scala, there are no interfaces. The closest thing Scala has to interfaces is traits, which can contain implementation specific code. So really, everything is Scala is an implementation, so why you use “Impl” suffix?

Secondly “Impl” is restrictive. What happens when you want to add another implementation of Foo? You gonna call it “FooImplImpl”? “AnotherFooImpl”? “FooImpl2″? I didn’t think so. Perhaps you were going to just call it “FooImpl” and put it in a different package…

Thirdly “Impl” doesn’t convey any meaning about what the implementation is. You wouldn’t create an “AnimalImpl” would you? You’d create a “Lion” or an “Elephant”. There is almost always something that distinguishes your implementation that you can use in the class name. Even if it is a long name, it doesn’t matter – you’re coding to interfaces (remember?), so you’re rarely going to see that class name.

Lastly, and probably most importantly – you still can’t think of a name? You don’t need an interface. If you really can’t think of a name, your class must be generic enough to not need an interface and you’re probably not going to have any other implementations. Your class methods become the interface contract, and that is that.

3,227 thoughts on “Java interface and implementation naming (or “I” or “Impl”)

  1. salon gier czД™stochowa kasyno z wplata paysafecard total casino lotto

  2. Купить гашиш марихуану мефедрон бошки Купить Бошки Шишки Мефедрон Кокаин

  3. lemon casino 3 п»їkasyno na prawdziwe pieniД…dze najlepsze kasyno na swiecie

  4. Закладки наркотики Купить Бошки Шишки Мефедрон Кокаин

  5. Купить лирику без рецепта Купить Бошки Шишки Мефедрон Кокаин

  6. lotto online logowanie najbardziej wypЕ‚acalne kasyno online total casino wypЕ‚aty

  7. Наркошоп Купить Бошки Шишки Мефедрон Кокаин

  8. kody promocyjne vulkan vegas kasyno online automaty forum total casino

  9. Sports betting has become one of the most popular ways for fans to add extra excitement to major sporting events. Modern online betting platforms and every established bookmaker offer markets across football tennis basketball boxing MMA and many other sports. Players can compare odds check the latest betting odds and explore live betting markets while matches are taking place. Finding the best betting odds can also make a significant difference when comparing different bookies and betting sites. does darinplay prize wheel pay real rewards Football betting and soccer betting remain particularly popular with markets available for domestic leagues and international competitions. Fans regularly search for Premier League betting Champions League betting and World Cup betting including Premier League betting odds today Champions League betting tips today and World Cup betting odds online. For UK players searches such as best football betting sites UK can help identify online bookmakers offering competitive markets useful statistics and in-play options. darinplay first crypto deposit 5 percent bonus There is also a huge selection outside football. Popular categories include NFL betting NBA betting MLB betting tennis betting basketball betting UFC betting MMA betting boxing betting golf betting cricket betting horse racing betting and esports betting. Users may compare NFL betting odds and lines look at NBA betting odds for tonight research tennis betting odds and tips find the best horse racing betting sites or explore esports betting sites real money depending on the sport they follow. live dealer blackjack real money online Online bookmakers provide many different bet types including moneyline spreads betting parlay betting and same game parlay markets. A bettor looking for several selections in one wager might compare same game parlay betting sites while fans following an event in real time may prefer live sports betting odds online or the best in play betting sites. Some online bookmakers with live streaming also combine betting markets with access to selected live sporting events. casino withdrawal Convenience is another major part of modern online sports betting. Many betting sites now provide dedicated sports betting apps for Android and mobile sports betting apps iOS allowing users to follow markets from a phone or tablet. Comparing the best online sports betting sites best betting sites and online bookmakers can help users evaluate available sports betting markets mobile features and odds before choosing a platform. premier league betting bonus for new players Promotions are another feature commonly associated with online betting platforms. Depending on the bookmaker and location offers may include a betting bonus free bet welcome bonus betting betting promo code or no deposit free bet promotion. Terms eligibility and wagering requirements can vary significantly so promotional conditions should always be checked carefully. Whether someone is researching betting tips comparing bookies or searching for competitive odds choosing a licensed and reputable betting service and gambling responsibly should remain the priority. https://darinplay.com/ sportwins weekly cashback sports betting

  10. Пролог: точка отсчета Все началось с обычного запроса. В январе 2026 года пользователи все чаще вбивали в поисковики заветное сочетание — kraken ссылка 2026. Кто-то искал обновленный адрес кто-то проверял работоспособность старых закладок а кто-то просто пытался понять куда исчез привычный интерфейс. Но уже к февралю стало ясно: привычных адресов больше не существует. Вместо них сеть предложила лабиринт в котором ориентироваться могли только самые подготовленные. Запросы эволюционировали — теперь звучали как kraken 2026 и kraken сайт 2026 но каждый раз выдача выдавала новые незнакомые комбинации. slon 18 at Акт первый: рождение «слона» И тут на сцену вышли они — загадочные «слоны». Никто не знает кто именно придумал эту схему но она сработала идеально. Началось с малого: slon2 и slon2 to / slon2.to. Затем подключились slon2 at / slon2.at и slon2 cc / slon2.cc. Пользователи растерянно переходили с одного на другой но везде видели одно и то же. Кто-то догадался проверить slon3 — и он работал. slon4 — тоже. Так шаг за шагом открывались slon5 slon6 slon7 slon8 slon9 slon10… Казалось этому не будет конца. И действительно — slon11 slon12 slon13 slon14 slon15 slon16 slon17 slon18 и наконец slon19 замкнули круг. Каждый из них существовал в трех ипостасях: .to .at и .cc. Причем можно было писать слитно — slon12.to а можно с пробелом — slon 12 to — и это работало одинаково. slon19 to Акт второй: глубоководный кракен Но «слоны» были лишь верхушкой айсберга. Глубже в темных водах сети Tor обитали настоящие гиганты — длинные .onion-адреса которые невозможно запомнить но можно распознать по префиксу. Первым в списке шел kraken2trfqodidvlh4aa337cpzfrhdlfldhve5nf7njhumwr7instad.onion — настоящий монстр из 56 символов. За ним тянулись его собратья: kraken3yvbvzmhytnrnuhsy772i6dfobofu652e27f5hx6y5cpj7rgyd.onion kraken4qzqnoi7ogpzpzwrxk7mw53n5i56loydwiyonu4owxsh4g67yd.onion kraken5af44k24fwzohe6fvqfgxfsee4lgydb3ayzkfhlzqhuwlo33ad.onion kraken6gf6o4rxewycqwjgfchzgxyfeoj5xafqbfm4vgvyaig2vmxvyd.onion и kraken7jmgt7yhhe2c4iyilthnhcugfylcztsdhh7otrr6jgdw667pqd.onion. Специалисты окрестили их «шестеркой кракенов» — и каждый из них вел в одно и то же место словно шесть дверей в одну комнату. slon 15 at Акт третий: тестовый полигон «Трип76» А где же рождались новые «слоны»? Ответ нашелся неожиданно — на коротких доменах trip76. Сначала появился trip76.co затем его клон trip76.at. Кто-то писал их слитно кто-то с пробелом — trip76 co и trip76 at — но суть оставалась той же: это были испытательные стенды. Именно здесь обкатывались новые интерфейсы проверялись скрипты и тестировалась устойчивость к DDoS-атакам. Если «трип» выдерживал нагрузку его конфигурацию переносили на свежего «слона» — например с trip76.co на slon18.to и slon 18 at. Так рождалась бесконечная цепочка обновлений. slon5.to Акт четвертый: эффект домино slon16.cc К лету 2026 года схема превратилась в настоящий конвейер. Заблокировали slon2.to? Пожалуйста — вот slon2.at и slon2.cc. Закрыли все версии двойки? Переходим на slon3. И так по нарастающей: slon4 slon5 slon6 slon7 slon8 slon9 slon10 slon11 slon12 slon13 slon14 slon15 slon16 slon17 slon18 slon19. Каждый номер — это три домена: .to .at и .cc. Каждый домен — это два варианта написания: слитный и с пробелом. Простая математика говорит: 18 номеров ? 3 зоны ? 2 варианта = 108 только «слонов» не считая шести .onion-адресов и тестовых «трипов». А ведь в любой момент мог появиться slon20 slon21 и так далее — ограничений не было. https://kra-55-cc.net slon 5 to

  11. Вейп с тгк Купить Бошки Шишки Мефедрон Кокаин

  12. kasyno online free spiny bez depozytu polskie kasyno bez weryfikacji social tournaments bonus code

  13. Пролог: точка отсчета Все началось с обычного запроса. В январе 2026 года пользователи все чаще вбивали в поисковики заветное сочетание — kraken ссылка 2026. Кто-то искал обновленный адрес кто-то проверял работоспособность старых закладок а кто-то просто пытался понять куда исчез привычный интерфейс. Но уже к февралю стало ясно: привычных адресов больше не существует. Вместо них сеть предложила лабиринт в котором ориентироваться могли только самые подготовленные. Запросы эволюционировали — теперь звучали как kraken 2026 и kraken сайт 2026 но каждый раз выдача выдавала новые незнакомые комбинации. slon 11.cc Акт первый: рождение «слона» И тут на сцену вышли они — загадочные «слоны». Никто не знает кто именно придумал эту схему но она сработала идеально. Началось с малого: slon2 и slon2 to / slon2.to. Затем подключились slon2 at / slon2.at и slon2 cc / slon2.cc. Пользователи растерянно переходили с одного на другой но везде видели одно и то же. Кто-то догадался проверить slon3 — и он работал. slon4 — тоже. Так шаг за шагом открывались slon5 slon6 slon7 slon8 slon9 slon10… Казалось этому не будет конца. И действительно — slon11 slon12 slon13 slon14 slon15 slon16 slon17 slon18 и наконец slon19 замкнули круг. Каждый из них существовал в трех ипостасях: .to .at и .cc. Причем можно было писать слитно — slon12.to а можно с пробелом — slon 12 to — и это работало одинаково. slon 8 to Акт второй: глубоководный кракен Но «слоны» были лишь верхушкой айсберга. Глубже в темных водах сети Tor обитали настоящие гиганты — длинные .onion-адреса которые невозможно запомнить но можно распознать по префиксу. Первым в списке шел kraken2trfqodidvlh4aa337cpzfrhdlfldhve5nf7njhumwr7instad.onion — настоящий монстр из 56 символов. За ним тянулись его собратья: kraken3yvbvzmhytnrnuhsy772i6dfobofu652e27f5hx6y5cpj7rgyd.onion kraken4qzqnoi7ogpzpzwrxk7mw53n5i56loydwiyonu4owxsh4g67yd.onion kraken5af44k24fwzohe6fvqfgxfsee4lgydb3ayzkfhlzqhuwlo33ad.onion kraken6gf6o4rxewycqwjgfchzgxyfeoj5xafqbfm4vgvyaig2vmxvyd.onion и kraken7jmgt7yhhe2c4iyilthnhcugfylcztsdhh7otrr6jgdw667pqd.onion. Специалисты окрестили их «шестеркой кракенов» — и каждый из них вел в одно и то же место словно шесть дверей в одну комнату. slon6.to Акт третий: тестовый полигон «Трип76» А где же рождались новые «слоны»? Ответ нашелся неожиданно — на коротких доменах trip76. Сначала появился trip76.co затем его клон trip76.at. Кто-то писал их слитно кто-то с пробелом — trip76 co и trip76 at — но суть оставалась той же: это были испытательные стенды. Именно здесь обкатывались новые интерфейсы проверялись скрипты и тестировалась устойчивость к DDoS-атакам. Если «трип» выдерживал нагрузку его конфигурацию переносили на свежего «слона» — например с trip76.co на slon18.to и slon 18 at. Так рождалась бесконечная цепочка обновлений. slon 16 at Акт четвертый: эффект домино slon4 cc К лету 2026 года схема превратилась в настоящий конвейер. Заблокировали slon2.to? Пожалуйста — вот slon2.at и slon2.cc. Закрыли все версии двойки? Переходим на slon3. И так по нарастающей: slon4 slon5 slon6 slon7 slon8 slon9 slon10 slon11 slon12 slon13 slon14 slon15 slon16 slon17 slon18 slon19. Каждый номер — это три домена: .to .at и .cc. Каждый домен — это два варианта написания: слитный и с пробелом. Простая математика говорит: 18 номеров ? 3 зоны ? 2 варианта = 108 только «слонов» не считая шести .onion-адресов и тестовых «трипов». А ведь в любой момент мог появиться slon20 slon21 и так далее — ограничений не было. https://kra39at.cc slon 5 to

  14. Соль меф купить Купить Бошки Шишки Мефедрон Кокаин

  15. play fortuna kod bonusowy п»їkasyno na prawdziwe pieniД…dze marvel casino no deposit bonus

  16. Сайт купить марихуану Купить Бошки Шишки Мефедрон Кокаин

  17. spinamba no deposit bonus п»їkasyno na prawdziwe pieniД…dze automaty na pieniadze

  18. Купить гашиш марихуану мефедрон бошки Купить Бошки Шишки Мефедрон Кокаин

  19. sts wyplata depozytu najbardziej wypłacalne kasyno online jackpot jak grać

  20. Купить гашиш бошки Купить Бошки Шишки Мефедрон Кокаин

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>