2017-09-06 2 views
0

J'ai besoin de conseils généraux dans la conception de solutions.Modèle de conception pour l'utilisateur de choisir le film

Mon processus général de la pensée est:

  1. Définir la fonctionnalité requise dans l'interface et faire une classe pour étendre l'interface.

Disons que un utilisateur doit se connecter sur un certain site Cinéma, alors nous avons besoin

// id, password, address, name, age, sex etc. of the User 
// login method which authenticates the login 
// default Display of Movies after login 
// Displaying the list as per the chosen type (select the choices of "TRENDING","MYTHOLOGY", ACTION" Movies). 

doute:

Je définit une classe comme ceci:

public class User implements IUSER { 
    private String id; 
    private String password; 
    private Authenticate authenticate; 
    private DisplayUI displayUI; 
.. 
.. 
.. 
    User() 
    { 
     authenticate = new Authenticate(); 
     displayUI = new DisplayUI(); 
    } 

    public String getUserName() { 
     return userName; 
    } 

    private String userName; 

    @Override 
    public void login() { 
     authenticate.verify(userName,password); 
     select("ACTION"); 
    } 

    @Override 
    public void select(String Type) { 
     displayUI.display(Type); 
    } 
} 

... 

En cette conception, je reçois tous les objets requis comme Authenticate, DisplayUi etc. ici. Mais de cette façon, je devrais finir avec beaucoup d'objets dans la classe d'utilisateur (plus comme un modèle de façade).

Est-ce la bonne façon? S'il vous plaît me suggérer, si pourrait être mis en œuvre de meilleure façon.

Répondre

1

Réponse à votre question est conception orientée objet. L'application que vous avez mentionnée est un système complet. En général, de tels systèmes se répartissent sur au moins trois couches, à savoir Présentation, Business et Persistance. Le plan d'échantillonnage montré ci-dessus n'a pas traversé le cycle de vie de la conception. La phase d'analyse semble avoir été complètement ignorée. Symptômes typiques allant vers un mauvais design sont

  1. Chaque classe avec IClass comme une interface: ces interfaces ne servent à rien d'autre que la duplication de l'API. L'interface a le pouvoir de changer le rôle de n'importe quel objet au moment de l'exécution.
  2. Noms de classe ressemblant à des «verbes» plutôt qu'à des noms (par exemple, authentification). de telles classes le pousseront rapidement vers la conception procédurale.
  3. classes d'entité (par exemple l'utilisateur) directement avec la couche de présentation (par exemple DisplayUI)

Plutôt que de court correctif pour, son besoin de passer par un processus de conception orientée objet. Des principes solides aideront également à mieux le comprendre.

+0

@ Kedar .Merci Kedar. Pouvez-vous s'il vous plaît me suggérer livre/site Web qui donne de tels exemples pour passer par des exemples de processus de conception orientés objet et qui est très interactif avec le développeur avec des exemples réels –

+0

@Shriharsha grv livres suivants sont bons - 1. Analyse orientée objet et conception avec Applications, par Grady Booch. 2. Modélisation orientée objet et conception avec UML, par Michael R. Blaha, James R Rumbaugh. Il y a des vidéos sur ton tube par Blaha. –