Ho ereditato il progetto da uno sviluppatore Java molto esperto. Il progetto è l'app per Android e il tizio che ha codificato ha molta esperienza nella codifica delle normali app Java. Ha introdotto alcune strutture di file che non ho mai incontrato prima (non ho codificato app Java al di fuori dell'area Android). Posso seguire il codice senza problemi e fino ad ora ho completato alcuni componenti aggiuntivi, ma ora mi piacerebbe sapere di più sul perché ha usato questo approccio poiché potrebbe aiutarmi a scrivere un codice migliore. D'altra parte, se il suo approccio non è adatto per le app Android, mi piacerebbe saperlo anche così non uso tali strutture.
Dividerò tutte le domande in punti.
-
Quando si ha a che fare con un database, ha creato 3 livelli: entità, data_access e controller. Questo è un tipo di struttura MVC. È consigliabile utilizzarlo nelle app Android?
-
Nella parte controller, ha creato la seguente struttura di file:
controller/ async/ AsyncAddObject.java AsyncExecutorAdd.java AsyncExecutorGetAll.java Entity1Controller.java Entity2Controller.java Entity3Controller.java IController.java
Tutti i file asincroni sono i generici.
Questa struttura ti è familiare? Ricordo gli esecutori utilizzati in Java, ma non ho mai usato un simile approccio nello sviluppo di Android. Se questo è un modo corretto, per cosa viene utilizzato Executor?
Che dire di IController.java
- qualcosa di solito nella normale codifica Java?
+++++++++
Poi, quando vogliamo aggiungere qualche voce nel database, usa il seguente codice
Entity1 ent = new Entity1();
ent.setSomething(someParameter);
AsyncAddObject<Entity1> obj = new AsyncAddObject<Entity1>();
obj.setController(mEntity1Controller);
obj.setObj(ent);
new AsyncExecutorAdd<Entity1>().execute(obj);
Questo aspetto ti confonde? Io di solito chiamo un metodo di database e passo l'oggetto ad esso. Ad esempio, lo farei come questo
Entity1 ent = new Entity1();
ent.setSomething(someParameter);
MyDatabaseClass.addEntity1(ent); //just an example, adding to database will be done on non-Main thread.
Questo è tutto. Mi scuso per un lungo post.