Interface Segregation Principle
Last updated
Last updated
interface ICRUDService<T> {
create(model: T): void;
find(id: number): T;
update(model: T): void;
delete(model: T): void;
}
class EmployeeService implements ICRUDService<Employee> {
public find(id: number) {
// finding logic
}
public create(model: T) {
throw new Error('Not Implemented');
}
public update(model: T) {
throw new Error('Not Implemented');
}
public delete(model: T) {
throw new Error('Not Implemented');
}
}interface IReadService<T> {
find(id: number): T;
}
interface IWriteService<T> {
create(model: T): void;
update(model: T): void;
delete(model: T): void;
}
class EmployeeService implements IReadService<Employee> {
public find(id: number) {
// finding logic
}
}