เป็นไปได้หรือไม่ที่จะใช้รูปแบบ model-view – controller ใน Java สำหรับ Android?
หรือมีการนำไปใช้แล้วผ่านกิจกรรมหรือไม่ หรือมีวิธีที่ดีกว่าในการใช้รูปแบบ MVC สำหรับ Android
เป็นไปได้หรือไม่ที่จะใช้รูปแบบ model-view – controller ใน Java สำหรับ Android?
หรือมีการนำไปใช้แล้วผ่านกิจกรรมหรือไม่ หรือมีวิธีที่ดีกว่าในการใช้รูปแบบ MVC สำหรับ Android
คำตอบ:
ใน Android คุณไม่มี MVC แต่คุณมีสิ่งต่อไปนี้:
ไม่มีรูปแบบ MVC ที่เป็นสากล MVC เป็นแนวคิดมากกว่ากรอบการเขียนโปรแกรมที่มั่นคง คุณสามารถใช้ MVC ของคุณเองบนแพลตฟอร์มใดก็ได้ ตราบใดที่คุณยึดมั่นกับแนวคิดพื้นฐานต่อไปนี้คุณกำลังใช้ MVC:
คิดด้วยวิธีนี้เช่นกัน: เมื่อคุณตั้งโปรแกรมโมเดลของคุณโมเดลไม่ควรกังวลเกี่ยวกับการแสดงผล (หรือรหัสเฉพาะแพลตฟอร์ม) รูปแบบจะพูดกับมุมมองฉันไม่สนใจว่าการแสดงผลของคุณเป็น Android หรือ iOS หรือ Windows Phone นี่คือสิ่งที่ฉันต้องการให้คุณแสดง มุมมองจะจัดการกับรหัสการแสดงผลเฉพาะแพลตฟอร์มเท่านั้น
สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณใช้Monoเพื่อแบ่งปันโมเดลเพื่อพัฒนาแอปพลิเคชันข้ามแพลตฟอร์ม
แอ็คชั่นมุมมองและกิจกรรมบน Android เป็นวิธีการทำงานร่วมกับ Android UI และนำไปใช้กับรูปแบบ model – view – viewmodel (MVVM)ซึ่งมีโครงสร้างคล้ายกัน (ในตระกูลเดียวกัน) model – view -controller
เท่าที่ความรู้ของฉันดีที่สุดก็ไม่มีทางที่จะแยกโมเดลนี้ อาจทำได้ แต่คุณอาจสูญเสียผลประโยชน์ทั้งหมดที่มีอยู่ในแบบจำลองและต้องเขียนเลเยอร์ UI ของคุณเองเพื่อให้ทำงานได้
หลังจากค้นหาบางคำตอบที่เหมาะสมที่สุดคือ:
MVC ได้รับการติดตั้งใน Android เป็น:
Button
android.view.View
(วิธีนี้แสดงถึงไม่มีตรรกะโดเมนแอปพลิเคชันในกิจกรรม)
สิ่งที่สมเหตุสมผลที่สุดสำหรับนักพัฒนารายย่อยคือการทำตามรูปแบบนี้และไม่พยายามทำสิ่งที่ Google ตัดสินใจไม่ทำ
PS ทราบว่ากิจกรรมบางครั้งจะเริ่มต้นใหม่จึงเป็นสถานที่สำหรับข้อมูลแบบไม่มี (วิธีที่ง่ายที่สุดที่จะทำให้เกิดการรีสตาร์ทคือการละเว้นandroid:configChanges="keyboardHidden|orientation"
จาก XML และเปิดอุปกรณ์ของคุณ)
แก้ไข
เราอาจจะพูดคุยเกี่ยวกับMVCแต่มันจะเป็นเพื่อที่จะพูดFMVC , กรอบ - รุ่น - ดู - ควบคุม กรอบ (ระบบปฏิบัติการ Android) กำหนดความคิดของวงจรชีวิตของส่วนประกอบและเหตุการณ์ที่เกี่ยวข้องและในทางปฏิบัติควบคุม ( Activity
/ Service
/ BroadcastReceiver
) เป็นครั้งแรกของการรับผิดชอบทั้งหมดสำหรับการรับมือกับเหล่ากรอบ -imposed เหตุการณ์ (เช่นonCreate () ) อินพุตของผู้ใช้ควรถูกประมวลผลแยกกันหรือไม่? แม้ว่ามันจะเป็นไปได้ แต่คุณก็ไม่สามารถแยกมันออกได้กิจกรรมป้อนข้อมูลของผู้ใช้ก็มาจาก Android
อย่างไรก็ตามรหัสน้อยที่ไม่ได้เป็นเฉพาะของ Android ที่คุณใส่ลงในของคุณActivity
/ Service
/ BroadcastReceiver
ที่ดีกว่า
Button
รู้เกี่ยวกับตัวควบคุมหรือไม่ ดูเหมือนว่ามีเหตุผลมากกว่าที่ผู้ชมจะได้รู้เพียงการแสดงสิ่งต่าง ๆ และคำนึงถึงว่ารุ่นเท่านั้นที่รู้เกี่ยวกับธรรมชาติของข้อมูลนี้คือเหตุผลที่ควบคุมเป็นสิ่งจำเป็น: สิ่งที่จะต้องรู้ว่าทั้งสองเกี่ยวกับรุ่นและดู
Service
มาภายใต้ร่มของผู้ควบคุมด้วย
ไม่มีรูปแบบ MVC เดียวที่คุณสามารถเชื่อฟังได้ MVC เพียงระบุว่ามากหรือน้อยที่คุณไม่ควรรวมข้อมูลและดูดังนั้นเช่นมุมมองมีหน้าที่รับผิดชอบในการเก็บข้อมูลหรือคลาสที่กำลังประมวลผลข้อมูลมีผลกระทบโดยตรงต่อมุมมอง
แต่อย่างไรก็ตามวิธีที่ Android ใช้กับคลาสและแหล่งข้อมูลบางครั้งคุณอาจถูกบังคับให้ทำตามรูปแบบ MVC ความคิดของฉันมีความซับซ้อนมากขึ้นคือกิจกรรมที่บางครั้งมีความรับผิดชอบต่อความคิดเห็น แต่ก็ยังทำหน้าที่เป็นผู้ควบคุมในเวลาเดียวกัน
หากคุณกำหนดมุมมองและเลย์เอาต์ของคุณในไฟล์ XML ให้โหลดทรัพยากรของคุณจากโฟลเดอร์ res และหากคุณหลีกเลี่ยงการรวมสิ่งเหล่านี้ในรหัสของคุณมากขึ้นหรือน้อยลงคุณก็ยังคงติดตามรูปแบบ MVC อยู่ดี
คุณสามารถใช้ MVC ใน Android ได้ แต่ไม่รองรับ "แบบดั้งเดิม" และใช้ความพยายาม
ที่กล่าวว่าฉันเองมีแนวโน้มต่อMVPเป็นรูปแบบสถาปัตยกรรมที่สะอาดกว่ามากสำหรับการพัฒนา Android และด้วยการพูด MVP ฉันหมายถึงสิ่งนี้:
ฉันได้โพสต์คำตอบอย่างละเอียดยิ่งขึ้นที่นี่ด้วย
หลังจากที่เล่นด้วยวิธีการต่างๆในการดำเนินการ MVC / MVP ใน Android ของฉันมาที่มีรูปแบบสถาปัตยกรรมที่เหมาะสมซึ่งผมอธิบายไว้ในบทความนี้: MVP และ MVC รูปแบบสถาปัตยกรรมใน Android
แหล่งข้อมูลที่ดีที่สุดที่ฉันพบว่าใช้ MVC บน Android คือโพสต์นี้ :
ฉันติดตามการออกแบบเดียวกันสำหรับหนึ่งในโครงการของฉันและมันก็ใช้งานได้ดีมาก ฉันเป็นผู้เริ่มต้นบน Android ดังนั้นฉันไม่สามารถพูดได้ว่านี่เป็นทางออกที่ดีที่สุด
ฉันทำการดัดแปลงเพียงครั้งเดียว: ฉันสร้างโมเดลและตัวควบคุมสำหรับแต่ละกิจกรรมในคลาสแอปพลิเคชันเพื่อให้สิ่งเหล่านี้ไม่ได้ถูกสร้างขึ้นใหม่เมื่อโหมดแนวนอนแนวตั้งเปลี่ยนไป
ฉันเห็นด้วยกับ JDPeckham และฉันเชื่อว่า XML เพียงอย่างเดียวไม่เพียงพอที่จะใช้ส่วน UI ของแอปพลิเคชัน
อย่างไรก็ตามหากคุณพิจารณาว่ากิจกรรมเป็นส่วนหนึ่งของมุมมองการใช้ MVC นั้นค่อนข้างตรงไปตรงมา คุณสามารถแทนที่แอปพลิเคชัน (ตามที่ส่งคืนโดย getApplication () ในกิจกรรม) และที่นี่คุณสามารถสร้างตัวควบคุมที่มีชีวิตรอดตลอดอายุการใช้งานของแอปพลิเคชันของคุณ
(หรือคุณสามารถใช้รูปแบบซิงเกิลตามที่แนะนำโดยเอกสารประกอบการสมัคร)
MVC- สถาปัตยกรรมบน Android ดีกว่าที่จะติดตาม MVP ใด ๆ แทน MVC ใน Android แต่ก็ยังคงเป็นไปตามคำตอบของคำถามนี้สามารถแก้ปัญหาได้
คำอธิบายและแนวทางปฏิบัติ
Controller -
Activity can play the role.
Use an application class to write the
global methods and define, and avoid
static variables in the controller label
Model -
Entity like - user, Product, and Customer class.
View -
XML layout files.
ViewModel -
Class with like CartItem and owner
models with multiple class properties
Service -
DataService- All the tables which have logic
to get the data to bind the models - UserTable,
CustomerTable
NetworkService - Service logic binds the
logic with network call - Login Service
Helpers -
StringHelper, ValidationHelper static
methods for helping format and validation code.
SharedView - fragmets or shared views from the code
can be separated here
AppConstant -
Use the Values folder XML files
for constant app level
หมายเหตุ 1:
ตอนนี้ที่นี่คือเวทย์มนตร์ที่คุณสามารถทำได้ เมื่อคุณจำแนกรหัสแล้วให้เขียนคลาสอินเตอร์เฟสพื้นฐานเช่น IEntity และ IService ประกาศวิธีการทั่วไป ตอนนี้สร้าง BaseService ระดับนามธรรมและประกาศชุดวิธีการของคุณเองและมีการแยกรหัส
หมายเหตุ 2:หากกิจกรรมของคุณนำเสนอหลายรุ่นแทนที่จะเขียนโค้ด / ตรรกะในกิจกรรมจะเป็นการดีกว่าที่จะแบ่งมุมมองเป็นชิ้นส่วน ถ้าอย่างนั้นก็ดีกว่า ดังนั้นในอนาคตหากต้องการโมเดลเพิ่มเติมเพื่อแสดงในมุมมองให้เพิ่มแฟรกเมนต์อีกหนึ่งรายการ
หมายเหตุ 3:การแยกรหัสมีความสำคัญมาก ทุกองค์ประกอบในสถาปัตยกรรมควรมีความเป็นอิสระโดยไม่ต้องพึ่งพาตรรกะ ถ้าโดยบังเอิญถ้าคุณมีบางสิ่งบางอย่างขึ้นอยู่กับตรรกะแล้วเขียนคลาสตรรกะการทำแผนที่ในระหว่าง สิ่งนี้จะช่วยคุณในอนาคต
การสร้าง UI Android โดยใช้เลย์เอาต์ทรัพยากรกิจกรรมและ Intents เป็นการใช้รูปแบบ MVC โปรดดูลิงค์ต่อไปนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ - http://www.cs.otago.ac.nz/cosc346/labs/COSC346-lab2.2up.pdf
รูปแบบ MVC ของ Android นั้นถูกนำไปใช้กับคลาสAdaptor พวกเขาแทนที่ตัวควบคุมด้วย "อะแดปเตอร์" คำอธิบายสำหรับสถานะอะแดปเตอร์:
วัตถุอะแดปเตอร์ทำหน้าที่เป็นสะพานเชื่อมระหว่าง AdapterView และข้อมูลพื้นฐานสำหรับมุมมองนั้น
ฉันแค่กำลังมองหาสิ่งนี้สำหรับแอปพลิเคชัน Android ที่อ่านจากฐานข้อมูลดังนั้นฉันจึงไม่ทราบว่ามันใช้งานได้ดีเพียงใด อย่างไรก็ตามดูเหมือนว่าจะเป็นสถาปัตยกรรม Model-View-Delegate ของ Qt ซึ่งพวกเขาอ้างว่าเป็นขั้นตอนที่เพิ่มขึ้นจากรูปแบบ MVC แบบดั้งเดิม อย่างน้อยบนพีซีรูปแบบของ Qt ทำงานได้ค่อนข้างดี
แม้ว่าโพสต์นี้จะเก่า แต่ฉันต้องการเพิ่มสองสิ่งต่อไปนี้เพื่อแจ้งเกี่ยวกับการพัฒนาล่าสุดในพื้นที่นี้สำหรับ Android:
android-binding - การจัดเตรียมเฟรมเวิร์กที่เปิดใช้งานการโยงวิดเจ็ตมุมมอง android กับโมเดลข้อมูล ช่วยในการใช้รูปแบบ MVC หรือ MVVM ในแอปพลิเคชัน Android
roboguice - RoboGuice นำการคาดเดาออกจากการพัฒนา ฉีดมุมมองทรัพยากรบริการระบบหรือวัตถุอื่น ๆ ของคุณแล้วปล่อยให้ RoboGuice ดูแลรายละเอียด
รายละเอียด:
รูปแบบ MVC เป็นหลักนี้:
คุณสมบัติที่สำคัญของ MVC: เราสามารถปรับเปลี่ยนทั้งรุ่นหรือมุมมองหรือตัวควบคุมยังคงไม่ส่งผลกระทบต่อคนอื่น
ฉันคิดว่าคำอธิบายแบบย่อที่มีประโยชน์ที่สุดอยู่ที่นี่: http://www.cs.otago.ac.nz/cosc346/labs/COSC346-lab2.2up.pdf
จากทุกสิ่งทุกอย่างที่ฉันเคยเห็นและอ่านที่นี่การใช้ทุกสิ่งเหล่านี้ทำให้มันยากขึ้นและไม่เหมาะกับส่วนอื่น ๆ ของ android
การมีกิจกรรมให้ผู้ฟังคนอื่นใช้เป็นทางมาตรฐานของ Android อยู่แล้ว วิธีที่ไม่เป็นอันตรายที่สุดคือการเพิ่ม Java Observer เช่นสไลด์อธิบายและจัดกลุ่ม onClick และการกระทำประเภทอื่น ๆ ลงในฟังก์ชันที่ยังคงอยู่ในกิจกรรม
วิธี Android เป็นกิจกรรมที่ทำทั้งสองอย่าง การต่อสู้มันไม่ได้ทำให้การขยายหรือทำการเข้ารหัสในอนาคตง่ายขึ้น
ผมเห็นด้วยกับการโพสต์ 2 มันนำไปใช้งานแล้วไม่ใช่วิธีที่ผู้คนคุ้นเคย ไม่ว่าไฟล์นั้นจะอยู่ในไฟล์เดียวกันหรือไม่ก็ตาม ไม่จำเป็นต้องสร้างการแยกพิเศษเพื่อให้เหมาะกับภาษาและระบบปฏิบัติการอื่น ๆ
มันน่าแปลกใจที่พบว่าไม่มีโพสต์ใดในที่นี้ตอบคำถาม พวกเขามีทั้งทั่วไปคลุมเครือไม่ถูกต้องหรือไม่ได้อยู่ในการดำเนินการใน Android
ใน MVC เลเยอร์มุมมองจะรู้วิธีแสดงส่วนติดต่อผู้ใช้ (UI) เท่านั้น หากต้องการข้อมูลใด ๆ ก็จะได้รับจากเลเยอร์โมเดล แต่ดูไม่ได้โดยตรงขอให้รูปแบบการค้นหาข้อมูลที่มันไม่ได้ผ่านตัวควบคุม ดังนั้นควบคุม เรียกรุ่นที่จะให้ข้อมูลที่จำเป็นสำหรับการดู เมื่อข้อมูลมีความพร้อมที่ควบคุมแจ้งดูว่าข้อมูลที่มีความพร้อมที่จะได้มาจากรุ่น ตอนนี้มุมมองสามารถรับข้อมูลจากโมเดลได้
โฟลว์นี้สามารถสรุปได้ดังนี้:
เป็นที่น่าสังเกตว่ามุมมองสามารถทราบเกี่ยวกับความพร้อมใช้งานของข้อมูลในตัว แบบ ทั้งผ่านตัวควบคุม - หรือที่เรียกว่า Passive MVC - หรือโดยการสังเกตข้อมูลในตัวแบบโดยการลงทะเบียนที่สามารถสังเกตได้ซึ่งเป็นActive MVCMVC
ในส่วนของการดำเนินการอย่างใดอย่างหนึ่งในสิ่งแรกที่มาคิดเป็นว่าสิ่งที่หุ่นยนต์ชิ้นส่วนต้องใช้สำหรับการดู ? Activity
หรือFragment
?
คำตอบคือมันไม่สำคัญและสามารถใช้ได้ทั้งคู่ ดูควรจะสามารถที่จะนำเสนอส่วนติดต่อผู้ใช้ (UI) บนอุปกรณ์และตอบสนองต่อการโต้ตอบกับผู้ใช้ที่มีการ UI ทั้งActivity
และFragment
ให้วิธีการที่จำเป็นสำหรับการนี้
ในตัวอย่างแอพที่ใช้ในบทความนี้ฉันใช้Activity
สำหรับเลเยอร์มุมมองแต่Fragment
ยังสามารถใช้ได้
แอปตัวอย่างที่สมบูรณ์สามารถพบได้ในสาขา 'mvc' ของ repo GitHub ของฉันที่นี่ที่นี่
ฉันได้จัดการกับข้อดีข้อเสียของสถาปัตยกรรม MVC ใน Android ผ่านตัวอย่างที่นี่ที่นี่
สำหรับผู้ที่สนใจฉันได้เริ่มบทความเกี่ยวกับสถาปัตยกรรมแอพ android ที่นี่ซึ่งฉันเปรียบเทียบสถาปัตยกรรมที่แตกต่างกันเช่น MVC, MVP, MVVM สำหรับการพัฒนาแอพ android ผ่านแอพที่ทำงานได้สมบูรณ์
เมื่อยล้าจากภัยพิบัติ MVx บน Android เมื่อเร็ว ๆ นี้ฉันได้สร้างห้องสมุดเล็ก ๆ ที่ให้การไหลของข้อมูลทางเดียวและคล้ายกับแนวคิดของ MVC: https://github.com/zserge/anvil
โดยทั่วไปคุณมีองค์ประกอบ (กิจกรรมส่วนและกลุ่มการดู) ภายในคุณกำหนดโครงสร้างและสไตล์ของเลเยอร์มุมมอง นอกจากนี้คุณยังกำหนดวิธีที่ข้อมูลควรถูกผูกไว้กับมุมมอง ในที่สุดคุณสามารถผูกฟังในสถานที่เดียวกัน
จากนั้นเมื่อข้อมูลของคุณมีการเปลี่ยนแปลง - วิธีการเรนเดอร์ทั่วโลกจะถูกเรียกใช้และมุมมองของคุณจะได้รับการอัพเดตอย่างชาญฉลาดด้วยข้อมูลล่าสุด
นี่คือตัวอย่างของส่วนประกอบที่มีทุกอย่างอยู่ภายในสำหรับความกะทัดรัดของรหัส (แน่นอนว่ารุ่นและตัวควบคุมสามารถแยกได้ง่าย) ที่นี่ "นับ" เป็นรูปแบบมุมมอง () วิธีการคือมุมมองและ "v -> นับ ++" เป็นตัวควบคุมที่ฟังปุ่มคลิกและปรับปรุงรูปแบบ
public MyView extends RenderableView {
public MyView(Context c) {
super(c);
}
private int count = 0;
public void view() {
frameLayout(() -> { // Define your view hierarchy
size(FILL, WRAP);
button(() -> {
textColor(Color.RED); // Define view style
text("Clicked " + count); // Bind data
onClick(v -> count++); // Bind listeners
});
});
}
ด้วยรูปแบบที่แยกออกมาและตัวควบคุมมันจะมีลักษณะ:
button(() -> {
textColor(Color.RED);
text("Clicked " + mModel.getClickCount());
onClick(mController::onButtonClicked);
});
ที่นี่ในแต่ละปุ่มคลิกหมายเลขจะเพิ่มขึ้นจากนั้น "render ()" จะถูกเรียกและข้อความของปุ่มจะได้รับการปรับปรุง
ไวยากรณ์กลายเป็นที่น่าพอใจมากขึ้นถ้าคุณใช้ Kotlin: http://zserge.com/blog/anvil-kotlin.html นอกจากนี้ยังมีไวยากรณ์ทางเลือกสำหรับ Java โดยไม่มี lambdas
ห้องสมุดมีน้ำหนักเบามากไม่มีการพึ่งพาไม่มีการสะท้อน ฯลฯ
(ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้เขียนของห้องสมุดนี้)
ตามคำอธิบายที่ทีม Xamarin อธิบาย (บน iOS MVC "ฉันรู้ว่ามันดูแปลก ๆ แต่รอสักครู่"):
ฉันสามารถพูดสิ่งนี้:
รูปแบบบน Android เป็นเพียงวัตถุที่พัสดุได้ มุมมองคือโครงร่าง XML และคอนโทรลเลอร์คือ (กิจกรรม + ส่วนของมัน)
* นี่เป็นเพียงความเห็นของฉันไม่ใช่จากแหล่งข้อมูลหรือหนังสือ
ไม่มีสถาปัตยกรรม MVC ที่นำมาใช้ แต่มีชุดของไลบรารี / ตัวอย่างเพื่อใช้สถาปัตยกรรม MVP (model – view – presenter)
กรุณาตรวจสอบลิงค์เหล่านี้:
Google เพิ่มตัวอย่างของสถาปัตยกรรม MVP ของ Android:
ฉันเห็นแล้วว่ามีหลายคนกำลังบอกว่า MVC ได้รับการติดตั้งใน Android แล้ว แต่ก็ไม่เป็นความจริง Android ไม่มี MVC ตามค่าเริ่มต้น
เพราะฉันไม่ได้ Google จะบังคับให้มีข้อ จำกัด ของการใช้ MVC อย่างเช่น iPhone แต่สำหรับนักพัฒนาที่รู้ใจหรือเทคนิคที่พวกเขาต้องการในโครงการของพวกเขาในแอปพลิเคชันขนาดเล็กหรือใช้งานง่ายไม่จำเป็นต้องใช้ MVC แต่เป็นแอปพลิเคชัน เติบโตและซับซ้อนขึ้นและต้องการการแก้ไขรหัสในปีต่อมาจากนั้นก็มีความต้องการรูปแบบ MVC ใน Android
มันมีวิธีง่าย ๆ ในการปรับเปลี่ยนรหัสและยังช่วยในการลดปัญหา หากคุณต้องการติดตั้ง MVC บน Android ให้ทำตามลิงค์ด้านล่างนี้เพื่อรับ MVC ในโครงการของคุณ
http://www.therealjoshua.com/2011/11/android-architecture-part-1-intro/
แต่ทุกวันนี้ฉันคิดว่า MVP พร้อมกับ Android Architectural Pattern เป็นหนึ่งในนักพัฒนาตัวเลือกที่ดีที่สุดที่ควรใช้สำหรับแอปพลิเคชัน Android ที่สะอาดและมีประสิทธิภาพ
เมื่อเราใช้ MVC, MVVMหรือรูปแบบการนำเสนอกับแอพ Android สิ่งที่เราต้องการคือการมีโครงสร้างที่ชัดเจนและที่สำคัญกว่าสำหรับการทดสอบหน่วย
ในขณะนี้หากไม่มีกรอบงานของบุคคลที่สามคุณมักจะมีโค้ดจำนวนมาก (เช่น addXXListener (), findViewById () ฯลฯ ) ซึ่งไม่ได้เพิ่มมูลค่าทางธุรกิจใด ๆ
ยิ่งไปกว่านั้นคุณต้องเรียกใช้การทดสอบหน่วย Android แทนการทดสอบ JUnit ปกติซึ่งใช้เวลานานในการรันและทำให้การทดสอบหน่วยทำได้ค่อนข้างลำบาก ด้วยเหตุผลเหล่านี้เมื่อหลายปีก่อนเราเริ่มโครงการโอเพ่นซอร์ส RoboBindingกรอบงานนำเสนอข้อมูลที่มีผลผูกพันกับแพลตฟอร์ม Android
RoboBinding ช่วยให้คุณเขียนรหัส UI ที่ง่ายต่อการอ่านทดสอบและบำรุงรักษา RoboBinding ลบต้องของรหัสที่ไม่จำเป็นเช่น addXXListener หรือดังนั้นและตรรกะกะ UI ที่จะนำเสนอรุ่นซึ่งเป็น POJO และสามารถทดสอบผ่านการทดสอบ JUnit ปกติ RoboBinding มาพร้อมกับการทดสอบ JUnit มากกว่า 300 รายการเพื่อรับรองคุณภาพ
ในความเข้าใจของฉันวิธีที่ Android จัดการกับรูปแบบ MVC นั้นเป็นอย่างไร:
คุณมีกิจกรรมซึ่งทำหน้าที่เป็นตัวควบคุม คุณมีคลาสที่รับผิดชอบในการรับข้อมูล - โมเดลและจากนั้นคุณมีคลาส View ซึ่งเป็นมุมมอง
เมื่อพูดถึงมุมมองที่คนส่วนใหญ่คิดว่าเฉพาะส่วนของภาพที่กำหนดไว้ใน xml อย่าลืมว่า View ยังมีส่วนของโปรแกรมที่มีตัวสร้างวิธีการและอื่น ๆ ที่กำหนดไว้ในคลาส java