Mi sono imbattuto in una domanda all'indirizzo SO su PAC e si è interessato al modello. Mi chiedo perché non è così ampiamente usato come MVC? Quali sono i vantaggi di MVC rispetto a PAC?
La tecnologia diventa popolare per tre motivi:
Gli sviluppatori che sono già contenti di MVC-e-amici difficilmente andranno alla ricerca di alternative a meno che non vedano difetti nel loro approccio esistente. Presumo che MVC e le sue varianti più note soddisfino già la necessità di separare le preoccupazioni per molti sviluppatori.
Anche se vanno in cerca, è improbabile che lo trovino a meno che altri non lo stiano usando e scrivendo su di esso. Nel caso del PAC, direi che la maggior parte degli sviluppatori è semplicemente inconsapevole dell'approccio (non ne avevo sentito parlare fino a quando non ho letto questa domanda).
Anche se lo trovassero, non lo userebbero a meno che i benefici superino i costi di adozione. Numerosi framework hanno già incorporato un approccio basato su MVC, il che ha comportato costi elevati per molti sviluppatori.
Ecco qua: la gente non usa il PAC perché manca di marketing.
MVC è più popolare grazie al supporto dei framework
La maggior parte delle persone che buttano giù un'applicazione web in questi giorni seguiranno un percorso ben battuto usando le decisioni di progettazione fornite dai progettisti di alcuni framework web o altro. Nel mondo Java SpringMVC è una scelta popolare (forse perché non ci sono alternative, PAC o altro per confondere le acque). Altri sviluppatori comprendono e sono contenti dei vantaggi offerti da questo approccio e non vedono davvero la necessità di cambiare.
MVC funziona bene, è facile da capire e, se usato in modo efficace, riduce la complessità del codice dell'applicazione web.
What is the MVC benefits compared to PAC?
Semplicità. Per la stragrande maggioranza dei progetti, il PAC potrebbe essere eccessivo, mentre MVC li soddisfa abbastanza bene.
Non avevo mai sentito parlare di PAC prima, ma sembra essere esattamente lo stesso di MVC
Presentation = View
Abstraction = Model
Control = Controller
Dando un'occhiata al link fornito, mi sembra che -
PAC è più simile a MVVM che MVC.
Per passare da MVC a PAC, ciò che dobbiamo fare è cambiare la struttura delle directory. MVC segue un approccio orizzontale mentre PAC segue verticale. Ma logicamente un'applicazione può essere pensata per seguire entrambi contemporaneamente.
Leggi altre domande sui tag design-patterns