สองสามเดือนที่ผ่านมาฉันเริ่มทำงานในโครงการใหม่และเมื่อผ่านรหัสมันทำให้ฉันจำนวนคงที่วิธีการแบบคงที่ ไม่เพียง แต่วิธีการใช้งานยูทิลิตี้collectionToCsvString(Collection<E> elements)
แต่ยังมีตรรกะทางธุรกิจมากมาย
เมื่อผมถามคนที่มีความรับผิดชอบสำหรับเหตุผลที่อยู่เบื้องหลังนี้เขาบอกว่ามันเป็นวิธีการหนีออกจากการปกครองแบบเผด็จการของฤดูใบไม้ผลิ มันมีบางสิ่งที่อยู่รอบกระบวนการคิดนี้: เพื่อใช้วิธีการสร้างการรับลูกค้าเราอาจมีบริการ
@Service
public class CustomerReceiptCreationService {
public CustomerReceipt createReceipt(Object... args) {
CustomerReceipt receipt = new CustomerReceipt();
// creation logic
return receipt;
}
}
ตอนนี้ผู้ชายคนนั้นบอกว่าเขาไม่ชอบที่จะมีคลาสที่จัดการโดยสปริงโดยไม่จำเป็นเพราะมันมีข้อ จำกัด ว่าคลาสไคลเอนต์จะต้องเป็นสปริงบีนเอง เราจบลงด้วยการจัดการทุกอย่างในฤดูใบไม้ผลิซึ่งบังคับให้เราทำงานกับวัตถุไร้สัญชาติอย่างเป็นขั้นตอน มากหรือน้อยที่ระบุไว้ที่นี่https://www.javacodegeeks.com/2011/02/domain-driven-design-spring-aspectj.html
ดังนั้นแทนที่จะเป็นรหัสข้างต้นเขามี
public class CustomerReceiptCreator {
public static CustomerReceipt createReceipt(Object... args) {
CustomerReceipt receipt = new CustomerReceipt();
// creation logic
return receipt;
}
}
ฉันสามารถโต้เถียงกับจุดที่หลีกเลี่ยง Spring จัดการชั้นเรียนของเราเมื่อเป็นไปได้ แต่สิ่งที่ฉันไม่เห็นคือประโยชน์ของการมีทุกอย่างคงที่ วิธีการคงที่เหล่านี้ยังไร้สัญชาติดังนั้นจึงไม่มากเกินไป ฉันจะรู้สึกสะดวกสบายกับบางสิ่งบางอย่างมากขึ้น
new CustomerReceiptCreator().createReceipt()
เขาอ้างว่าวิธีการคงที่มีประโยชน์พิเศษบางอย่าง กล่าวคือ:
- อ่านง่ายกว่า นำเข้าวิธีการคงที่และเราเพียงต้องการที่จะดูแลเกี่ยวกับการดำเนินการไม่มีสิ่งที่เรียนจะทำ
- เห็นได้ชัดว่าเป็นวิธีการที่ปราศจากการเรียก DB ดังนั้นประสิทธิภาพการทำงานจึงถูก และเป็นสิ่งที่ดีที่จะทำให้ชัดเจนเพื่อให้ลูกค้าที่มีศักยภาพไม่จำเป็นต้องไปที่รหัสและตรวจสอบว่า
- ง่ายต่อการเขียนแบบทดสอบ
แต่ฉันแค่รู้สึกว่ามีบางอย่างไม่ถูกต้องกับสิ่งนี้ดังนั้นฉันอยากได้ยินความคิดของนักพัฒนาที่มีประสบการณ์มากกว่านี้
ดังนั้นคำถามของฉันคืออะไรผิดพลาดที่อาจเกิดขึ้นของวิธีการเขียนโปรแกรมนี้
static
วิธีการที่คุณกำลังแสดงข้างต้นเป็นเพียงวิธีการที่โรงงานสามัญ การทำให้วิธีการของโรงงานคงที่คือการประชุมที่ยอมรับกันโดยทั่วไปด้วยเหตุผลหลายประการที่น่าสนใจ ไม่ว่าวิธีการของโรงงานที่เหมาะสมที่นี่เป็นเรื่องที่แตกต่าง