Strategy Design Pattern in Java — A Complete Guide with Real-World Examples