खोज…


टिप्पणियों

लक्ष्य

एक धाराप्रवाह इंटरफ़ेस का प्राथमिक लक्ष्य पठनीयता को बढ़ाया जाता है।

जब वस्तुओं का निर्माण करने के लिए उपयोग किया जाता है, तो कॉलर को उपलब्ध विकल्प स्पष्ट और लागू किए जा सकते हैं जो संकलन-समय की जाँच के माध्यम से लागू होते हैं। उदाहरण के लिए, किसी जटिल वस्तु के निर्माण के मार्ग के चरणों का प्रतिनिधित्व करने वाले विकल्पों के निम्नलिखित पेड़ पर विचार करें:

A -> B 
  -> C -> D -> Done
       -> E -> Done
       -> F -> Done.
       -> G -> H -> I -> Done.

एक धाराप्रवाह इंटरफ़ेस का उपयोग करने वाला एक बिल्डर कॉल करने वाले को आसानी से देख सकता है कि प्रत्येक चरण में क्या विकल्प उपलब्ध हैं। उदाहरण के लिए, A -> B संभव है, लेकिन A -> C नहीं है और इसके परिणामस्वरूप संकलन-समय त्रुटि होगी।

सच्चाई - धाराप्रवाह परीक्षण रूपरेखा

"सत्य का उपयोग कैसे करें" से http://google.github.io/truth/

String string = "awesome";
assertThat(string).startsWith("awe");
assertWithMessage("Without me, it's just aweso").that(string).contains("me");

Iterable<Color> googleColors = googleLogo.getColors();
assertThat(googleColors)
    .containsExactly(BLUE, RED, YELLOW, BLUE, GREEN, RED)
    .inOrder();

धाराप्रवाह प्रोग्रामिंग शैली

धाराप्रवाह प्रोग्रामिंग शैली में आप this धाराप्रवाह (सेटर) तरीकों से वापस करते हैं जो गैर-धाराप्रवाह प्रोग्रामिंग शैली में कुछ भी नहीं लौटाएगा।

यह आपको अलग-अलग तरीके की कॉल को चेन करने की अनुमति देता है, जो आपके कोड को डेवलपर्स के लिए संभालना आसान और आसान बनाता है।

इस गैर-धाराप्रवाह कोड पर विचार करें:

public class Person {
  private  String firstName;
  private String lastName;

  public String getFirstName() {
    return firstName;
  }

  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }

  public String getLastName() {
    return lastName;
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  public String whoAreYou() {
    return "I am " + firstName + " " + lastName;
  }

  public static void main(String[] args) {
    Person person = new Person();
    person.setFirstName("John");
    person.setLastName("Doe");
    System.out.println(person.whoAreYou());
  }
}

चूंकि सेटर के तरीके कुछ भी वापस नहीं करते हैं, हमें किसी Person को कुछ डेटा के साथ तत्काल प्रिंट करने के लिए main विधि में 4 निर्देशों की आवश्यकता होती है और इसे प्रिंट करें। धाराप्रवाह शैली के साथ इस कोड को निम्न में बदला जा सकता है:

public class Person {
  private  String firstName;
  private String lastName;

  public String getFirstName() {
    return firstName;
  }

  public Person withFirstName(String firstName) {
    this.firstName = firstName;
    return this;
  }

  public String getLastName() {
    return lastName;
  }

  public Person withLastName(String lastName) {
    this.lastName = lastName;
    return this;
  }

  public String whoAreYou() {
    return "I am " + firstName + " " + lastName;
  }

  public static void main(String[] args) {
    System.out.println(new Person().withFirstName("John")
      .withLastName("Doe").whoAreYou());
  }
}

विचार हमेशा किसी वस्तु को विधि कॉल श्रृंखला के निर्माण को सक्षम करने और प्राकृतिक नामों को दर्शाने वाले विधि नामों का उपयोग करने के लिए वापस करना है। यह धाराप्रवाह शैली कोड को अधिक पठनीय बनाती है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow