{"title":"在Java中改进的流畅生成器","authors":"Mikhail Chalabine","doi":"10.1109/ICIS.2018.8466532","DOIUrl":null,"url":null,"abstract":"While the classical builder pattern in Java is proven to simplify object instantiation it is known to have some inherent imperfections that leave room for improper use and open for run-time failures. In this paper we improve the classical pattern. As the main contribution we formalize the two main problems we see in the approach today and refine the pattern such that we overcome these limitations at a cost of some auxiliary plain Java code. We validate our result empirically. We run the refined pattern through two major contemporary Java development environments – Eclipse and IntelliJ – and report how the improved source code comprehension opens for better developer guiding, higher developer productivity and higher code quality.","PeriodicalId":447019,"journal":{"name":"2018 IEEE/ACIS 17th International Conference on Computer and Information Science (ICIS)","volume":"1988 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Refined Fluent Builder in Java\",\"authors\":\"Mikhail Chalabine\",\"doi\":\"10.1109/ICIS.2018.8466532\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"While the classical builder pattern in Java is proven to simplify object instantiation it is known to have some inherent imperfections that leave room for improper use and open for run-time failures. In this paper we improve the classical pattern. As the main contribution we formalize the two main problems we see in the approach today and refine the pattern such that we overcome these limitations at a cost of some auxiliary plain Java code. We validate our result empirically. We run the refined pattern through two major contemporary Java development environments – Eclipse and IntelliJ – and report how the improved source code comprehension opens for better developer guiding, higher developer productivity and higher code quality.\",\"PeriodicalId\":447019,\"journal\":{\"name\":\"2018 IEEE/ACIS 17th International Conference on Computer and Information Science (ICIS)\",\"volume\":\"1988 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2018-06-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2018 IEEE/ACIS 17th International Conference on Computer and Information Science (ICIS)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICIS.2018.8466532\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 IEEE/ACIS 17th International Conference on Computer and Information Science (ICIS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICIS.2018.8466532","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
While the classical builder pattern in Java is proven to simplify object instantiation it is known to have some inherent imperfections that leave room for improper use and open for run-time failures. In this paper we improve the classical pattern. As the main contribution we formalize the two main problems we see in the approach today and refine the pattern such that we overcome these limitations at a cost of some auxiliary plain Java code. We validate our result empirically. We run the refined pattern through two major contemporary Java development environments – Eclipse and IntelliJ – and report how the improved source code comprehension opens for better developer guiding, higher developer productivity and higher code quality.