【发布时间】:2020-10-07 15:22:37
【问题描述】:
我有一个面向对象的问题,例如,有列表(数组)。
需要一种机制来添加(保存)和删除每个数组中的选定值。输出应该是其选定元素的每个数组。
数组的添加逻辑可能不同。
例如,arr1 数组,在添加到选定列表之前,满足某个条件,而其他条件则不满足。
我的想法正确吗?
数组arr1, arr2, arr3 - 数据模型。他们里面有任何类型的数据。
执行器类必须负责对数组的操作,它还允许您将项目添加到选定(收藏夹)列表中并从中删除。
问题 1 - 在哪里存储每个数组的选定元素列表?
问题 2 - 如果 ArrayHandler 类的逻辑是正确的,当 add 方法的逻辑针对不同的数组时,我会遇到问题。
在这种情况下,我不知道如何检查,是不是那个数组,在添加到选定列表之前需要额外检查。
class ArrayHandler {
add (element) {
// How to distinguish which input array is here to do the check before adding?
if (element is from arr1) {
return;
}
if (element is from arr2) {
// add
}
}
}
【问题讨论】:
-
PHP 还是 TypeScript?
-
没关系,我会尝试在这两个工具上实现这一点,我只是想掌握一个正确的原则
-
Standard PHP Library (SPL) 有很多你可能想看的数据结构和接口,你可以在方法中添加类型提示。但是,老实说,我不明白你的疑问是什么,或者即使它实际上是关于 PHP 的。
-
没看懂逻辑应该挂了才进入的意思
-
问题不在于工具,不在头脑中,不在 OOP 原则和责任范围内。我只是将数组元素添加到选定列表的类似逻辑,但是某些数组在添加到选定列表之前具有添加条件。
标签: typescript oop design-patterns polymorphism solid-principles