产品模块和用户模块之间的模块通信

时间:2017-05-08 07:01:42

标签: angular design-patterns architecture frontend software-design

我正在考虑在产品模块和用户模块之间进行前端沟通。产品和用户之间的关系是每个产品都有一个创建它们的用户。另一方面,每个用户都有一个由他们创建的产品列表。

我想问哪种方法最好还是你有更好的方法?

1。设计前端模块完全独立

产品型号(userId和userName是产品属性的一部分)

export class Product {
    name : string;
    description : string;
    userName : string;
    userId : string;
}

前端的ProductPage组件

@Component({
    template: '<div {{product.userName}} {{product.userId}}></div>'
})
export class ProductPage extends Component {
     product: Product;
}

用户模型

export class User {
    name : string;
    listOfProducts : string[];
}

在上面的示例中,产品和用户都没有通过模型进行通信。但是,通信是在后端完成的。

让用户了解产品信息

SELECT product.*, user.id as userId, user.name as userName
from product, user where product.user_id = user.id

2。所有模型都驻留在应用程序结构中,并相互通信。

产品型号(驻留在应用程序结构中)

export class Product {
    name : string;
    description : string;
    user: User;

}

用户模型(驻留在应用程序结构上)

export class User {
    name : string;
    listOfProducts : Product[];
}

前端的产品页面组件HTML

@Component({
    template: '<div {{userName}} {{userId}}></div>'
})
export class ProductPage extends Component {
     userName : string;
     userId : string;

}

应用程序调用产品页面组件

<product-page userName={{product.user.name}} userId={{product.user.id}}>

我个人认为第一种方法会更好,因为它使产品完全独立于用户。但是一旦我们拥有大量数据,我认为嵌套模型总是更好。第一种方法中的其他问题是我不能模块化数据库模块,因为我将数据库视为一个实体。

您认为哪一个更好?你有什么方法可以改善吗?或者你认为其他方法最好吗?

0 个答案:

没有答案