เพื่อนร่วมงานของฉันบอกฉันว่าควรมีตรรกะน้อยที่สุดเท่าที่จะเป็นไปได้ในผู้ได้รับและผู้ตั้งค่า
กระนั้นฉันก็มั่นใจว่ามีหลายสิ่งที่สามารถซ่อนอยู่ในตัวเชื่อมต่อและตัวตั้งเพื่อปกป้องผู้ใช้ / โปรแกรมเมอร์จากรายละเอียดการใช้งาน
ตัวอย่างของสิ่งที่ฉันทำ:
public List<Stuff> getStuff()
{
if (stuff == null || cacheInvalid())
{
stuff = getStuffFromDatabase();
}
return stuff;
}
ตัวอย่างของการทำงานให้ฉันทำสิ่งต่าง ๆ (พวกเขาอ้างว่า 'รหัสสะอาด' จากลุงบ๊อบ):
public List<Stuff> getStuff()
{
return stuff;
}
public void loadStuff()
{
stuff = getStuffFromDatabase();
}
ตรรกะมีความเหมาะสมใน setter / getter หรือไม่ การใช้ getters และ setters ที่ว่างเปล่าคืออะไรยกเว้นการละเมิดการซ่อนข้อมูล
public List<Stuff> getStuff() { return stuff; }
StuffGetter
อินเทอร์เฟซใช้StuffComputer
การคำนวณและห่อไว้ภายในวัตถุStuffCacher
ซึ่งรับผิดชอบในการเข้าถึงแคชหรือการโอนสายไปยังสิ่งStuffComputer
ที่มันล้อมรอบ