Angular 2-在类中运行服务

Angular 2-在类中运行服务,angular,service,Angular,Service,我是新来的。我在一个电子商务网站上工作,我为用户、物品、出价等设计了一些基本类。。。我的用户类有许多参数,其中一些是: export class User { id: number; name: string; email: string; ... notifications: Notification[]; } 通知类只有两个参数,如下所示: export class Notificati

我是新来的。我在一个电子商务网站上工作,我为用户、物品、出价等设计了一些基本类。。。我的用户类有许多参数,其中一些是:

export class User {
    id:             number;
    name:           string;
    email:          string;
    ...
    notifications:  Notification[];
}
通知类只有两个参数,如下所示:

export class Notification {
    notification:       string;
    read:               boolean;
}
我有一个用户服务和一个通知服务

情况是这样的:当用户读取通知时,我必须向服务器请求更改数据库中通知的“读取标志”的值。为此,在我的组件中,我可以执行以下操作:

this.notificationService.changeToRead(user.notifications[x]).subscribe(...);
在前一行中,我设想notificationService是notificationService的一个实例,它有一个名为changeToRead(notification:notification)的方法来执行请求

我的问题是这似乎是程序性的,我想要一个更面向对象的解决方案,如:

user.notifications[x].changeToRead();
要做到这一点,我必须在类通知中使用changeToRead()方法,但似乎我无法将服务注入到类中。。。但是,即使我可以,我也不想要像通知一样多的服务实例

我不确定我是否清楚,因为我的英语很差,但我需要找到一个解决方案,使我的请求更面向对象,如


任何想法?

< P>你可能想考虑使用当前的角度模式来建立你的角度应用程序,而不是引入在角度上不常用的OOP模式。

话虽如此,我还是能够使用如下方式将服务“注入”到我的类中:

在课堂上:

    constructor(private productService: ProductService) {

     }
ngOnInit(): void {
    let product = new IProduct(this.productService);
}
在使用该类的组件代码中:

    constructor(private productService: ProductService) {

     }
ngOnInit(): void {
    let product = new IProduct(this.productService);
}

使用此
类的任何原因。它必须用
@组件装饰
谢谢您的回答。是的,正如你所说,我尝试过“注入”服务,但我似乎没有“清洁”。你说“当前角度模式”是什么意思?在组件中注入服务并以过程方式使用服务的正确编程方法是什么?我的意思是,我一直在寻找使用OOP的方法,因为我认为它是最干净的,但如果不是,我将一如既往……是的,在Angular中,将服务注入组件是“正确”的编程方式。不确定这是如何“程序化”的。该服务只是一个单例对象,您可以使用OOP技术对其调用方法。啊,太棒了!好吧,我将一如既往地继续下去!非常感谢@DeborahK