उपयोगकर्ता को एक विशिष्ट प्रकार के उत्पाद की खोज करने की अनुमति देने के लिए एक उपयोगकर्ता इंटरफ़ेस डिज़ाइन करें।
public interface ProductSearcher {
  List<Product> searchProducts(String productName);
} 

इस इंटरफेस के माध्यम से, उपयोगकर्ता उत्पाद के नाम के आधार पर खोज कर सकता है। उपयोगकर्ता को अपनी खोज के बाद उस विशिष्ट उत्पाद का नाम और विवरण मिल सकता है। 

इसके अलावा, एक ProductSearcherImpl नामक कक्षा का निर्माण कर सकते हो। यह कक्षा वास्तविक खोज लोजिक लंबंधित कर सकती है। 

public class ProductSearcherImpl implements ProductSearcher {
  private List<Product> productList;
  
  public ProductSearcherImpl(List<Product> productList) {
    this.productList = productList;
  }
  
  public List<Product> searchProducts(String productName) {
    List<Product> matchingProducts = new ArrayList<>();
    for (Product product : productList) {
      if (product.getName().contains(productName)) {
        matchingProducts.add(product);
      }
    }
    return matchingProducts;
  }
} 

इस उदाहरण में, हमने ProductSearcher इंटरफ़ेस का उपयोग हमारे उत्पादों के साथ एक ProductSearcherImpl क्लास बनाने के लिए किया है। यह कक्षा उत्पादों की सूची का उपयोग करके वास्तविक खोज लॉजिक लंबंधित करती है। संभवतः उन्होंने पहले उत्पादों की सूची या डेटाबेस से डेटा प्राप्त कर रखा होगा, फिर उसे खोज करने के लिए उपयोगकर्ता के द्वारा दिए गए नाम के आधार पर फिल्टर किया जाएगा।