J'ai deux tables: tblCustomer
, tblProduct
:OOAD problème de conception
tblCustomer:
Id: Integer, auto-increament
Name: Varchar(30)
....
tblProduct
Id: Integer, auto-increament
Name: Varchar(50)
customerId: Integer
....
Et deux classes: Customer
, Product
:
public class Product
{
private int id;
private int name;
/* Other stuffs */
}
public class Customer
{
private int id;
private String name;
private String phoneNumber;
/* get-set and others stuffs */
public static boolean add(Customer cus) {
/* This is for insert a customer to tblCustomer */
}
public boolean addProduct(Product pd) {
/* This is for insert a product to tblProduct with current customer Id */
}
}
Lorsque le client compte registre, il appel:
Customer cus = new Customer(/* ... */);
Customer.add(cus);
et quand le client acheter un produit:
Product pd = new Product(/* ... */);
currentCustomer.addProduct(pd);
Mais mon professeur dit-il pas exact dans OOAD (et même POO) parce que Customer.addProduct
est fonctionne sur la table tblProduct
, est-il juste? Quel est le bon design pour ce cas?
** Mise à jour: ** produit pas encore un pré-défini, lorsqu'un client achète un produit, le magasin fera et la livraison au client, donc deux mêmes produits est rare arriver, est donc tblCustomerProduct
besoin ?
Le service est-il égal à la couche de contrôle (dans le modèle à 3 niveaux)? –
Il est égal au modèle (si vous référez à MVC) –
@ BìnhNguyên Oui, il a plusieurs noms: niveau d'entreprise, niveau de contrôle, niveau de service, niveau logique ... – sp00m