MVC Pattern
// MVC Pattern Example
class UserModel {
private name: string;
private email: string;
constructor(name: string, email: string) {
this.name = name;
this.email = email;
}
getName(): string {
return this.name;
}
getEmail(): string {
return this.email;
}
}
class UserView {
display(name: string, email: string): void {
console.log(`User: ${name}`);
console.log(`Email: ${email}`);
}
}
class UserController {
private model: UserModel;
private view: UserView;
constructor(model: UserModel, view: UserView) {
this.model = model;
this.view = view;
}
updateView(): void {
this.view.display(
this.model.getName(),
this.model.getEmail()
);
}
}
Repository Pattern
// Repository Pattern Example
interface UserRepository {
findById(id: number): Promise;
save(user: User): Promise;
delete(id: number): Promise;
}
class PostgresUserRepository implements UserRepository {
async findById(id: number): Promise {
// Implementation for PostgreSQL
return new User();
}
async save(user: User): Promise {
// Implementation for PostgreSQL
}
async delete(id: number): Promise {
// Implementation for PostgreSQL
}
}