POCO类和稳定的抽象原理

时间:2019-06-10 10:29:39

标签: architecture clean-architecture

在计算抽象索引时,定义为export class CustomerQuestionnaireComponent implements OnInit { showCurrentLang: boolean; private language: string; @ViewChildren(MatChip) children: QueryList<MatChip>; form: FormGroup; @Input() industries: IIndustry[]; @Output() searchApps: EventEmitter<string> = new EventEmitter<string>(); constructor(private fb: FormBuilder, private langService: LangService , private translate: TranslateService) { this.langService.currentLang.subscribe((lang) => { this.language = lang; if (this.language === 'en') { this.showCurrentLang = true ; } else { this.showCurrentLang = false ; } }); console.log(this.language) ; /// here works } private filter (value: string | IIndustry): IIndustry[] { if (this.language === 'en') { //here undefined if (value && (<IIndustry>value).name) { return this.industries; } const filterValue = (<string>value).toLowerCase(); return this.industries.filter(option => option.name.toLowerCase().includes(filterValue)); } if (value && (<IIndustry>value).nameCZ) { return this.industries; } const filterValue = (<string>value).toLowerCase(); return this.industries.filter(option => option.nameCZ.toLowerCase().includes(filterValue)); } displayIndustries (industry?: IIndustry) { //here undefined return (this.language === 'en' && industry) ? industry.name : industry.nameCZ; } ,其中(A = Na / Nb是接口和抽象类的数量,其中Na是具体类的数量),应该如何考虑POCO类别?

此类没有实现任何逻辑,但它们只是数据的容器。

风险在于,具有大量POCO的库在抽象类上的等级会非常低,但不会实现任何逻辑。

1 个答案:

答案 0 :(得分:1)

即使一个对象不包含任何逻辑,它也可能是非常具体的。实际上,如果您考虑为特定用例(例如,从网站的联系页面发送的ContactFormRequest发送)或包含数据源数据的DTO(例如,代表数据库表行的CustomerAddress)传输数据的数据传输对象,这些对象在业务规则和预期用途方面非常具体。需求变更很容易影响此类对象。

在上述公式中,这些对象应该算作Nb。