Developers often speak of patterns and anti-patterns in programming, usually identifying some new hyped pattern in programming as an anti-pattern. I personally don't believe there are any true anti-patterns in programming, instead what I hear when someone says "that's an anti-pattern" is really "that programming pattern or style doesn't fit my needs".
All design decisions in programming, including preferred coding patterns, have trade-offs. When one programming pattern might not fit your design, it does not mean that it won't fit an alternative design.
The key to making technical and architecture decisions is to weigh those trade-offs for your needs at hand.