仔细思考一个接口的不同实现得到的类和一个类的不同对象使用起来到底有什么区别?

最近在学习命令模式。

例子中是定义一个Command接口,其中只有一个execute方法声明。

接口的实现

因为接口是不指定构造方法的参数,也不指定成员变量的。所以你可以用任何形式实例化这个接口,只要其中实现了这个接口方法。

比如说开灯命令里面的execute中只要把light.on()方法写进去就可以了。而如果是播放cd命令的execute中就要写打开cd,放入碟片,调节音量等一系列操作。

二者却是联系的

这种执行逻辑的拓展是无法用同一个类的不同的对象实现的。当然,除非不同的对象中传入了不同的包含有execute方法的实现的对象,就如同OnClickListener。那就跟实现这个类一样了,不过是换了一个类,终究还是在不同的实现中完成的。

而同一个对象的不同的实例,不能改变自身的的方法的逻辑的具体实现。但是却可以接受不同的实现的对象来实现不同的逻辑。比如所不同的Button类的不同对象,setOnClickListener传入不同的OnClickListener,那么他们是同一个类的不同的实现。但是他们执行的onClick方法的逻辑却不相同。因为他们的这部分逻辑是调用的OnClickListener中的onClick方法的实现。


哲学一般的总结

同一个类的不同对象其终究意义在于其各个属性不同。而一个方法的执行的不同也是最终指向了不同的属性结果,只不过这种属性基于了调用的可能,基于了给想要改变的时候和改变者改变的时候,再进行改变。如果一个变化在时间上需要积分才能得出的结果。

那么站在时间的终端来看,不同的方法和不同的简单属性都是属性的不同。不同的OnClickListener有不同的onClick方法的实现,就相当于有不同的属性。不同的Button持有不同的OnClickListener,也就是持有不同的属性,从而导致持有不同的方法实现,这些方法的实现,在时间的终端仍然是属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 分器在什么时候拒绝一个样例取决于分器的特定设置和分任务的要求。在某些情况下,分器可能会拒绝分,因为它不具有足够的信息来对样本进行准确分。在其他情况下,分器可能会拒绝分,因为样本未知或不与分器训练集中的任何别匹配。 在不同型的分器中,实现拒绝操作的方法略有不同。以下是一些示例: 1. 支持向量机(SVM):SVM可以使用阈值来控制拒绝操作。如果样本的预测置信度低于阈值,则SVM将拒绝对该样本进行分。 2. 决策树:决策树可以使用不纯度来控制拒绝操作。如果一个样本的不纯度高于某个阈值,则决策树将拒绝对该样本进行分。 3. 神经网络:神经网络可以使用概率阈值来控制拒绝操作。如果样本的预测概率低于阈值,则神经网络将拒绝对该样本进行分。 需要注意的是,在某些情况下,拒绝操作可能会影响分器的整体性能。因此,在实现拒绝操作时,需要仔细考虑分任务的要求和分器的特定设置。 ### 回答2: 分器在什么时候会拒绝一个样例,取决于分器的判决标准和训练的目标。一般来说,分器会拒绝一个样例的情况包括以下几种: 1. 样例不属于任何已知的别:分器可能会拒绝一个样例,当该样例的特征与训练数据所表示的所有已知别都不匹配时,即无法找到合适的别将其归。 2. 样例未知或异常:分器可能会拒绝一个样例,当该样例属于未知的别或者是异常样本时,例如训练数据中没有包含该别的样本或者该样本与其他样本差异过大。 在不同型的分器中,可以采取以下方式实现样例的拒绝操作: 1. 基于阈值的分器:通过设定阈值,将分器输出的概率或置信度与该阈值进行比较,超过阈值则将样例分,否则拒绝样例。 2. 集成学习中的投票机制:在集成学习方法中,可以引入一个额外的“拒绝”别,当多个分器对某个样例的判断都不确定时,将其归为拒绝别。 3. 人工设定规则:根据具体应用场景的需求,制定相应的规则来判断样例是否应该被拒绝。例如,通过设定特定的特征范围或者值的范围来判断样例是否为异常样本。 综上所述,分器在何时会拒绝一个样例取决于分器的判断标准和训练目标,可以通过设置阈值、集成学习的投票机制或人工设定规则等方式来实现样例的拒绝操作。 ### 回答3: 分器在什么时候会拒绝一个样例取决于它在对样本进行分时的信心程度。当分器无法对一个样例进行明确的分时,它会选择拒绝分。 具体来说,分器通常会为一个样例分配一个置信度或概率值,用于表示该样例属于各个别的可能性。当分器无法给出明确的分结果时,可能是因为样例的特征与训练数据中的样例存在较大差异,或者样例本身存在异常情况。这时,分器可能会选择拒绝对该样例进行分。 在不同型的分器中,可以使用不同的方法来实现样例的拒绝分操作。以下是几种常见的方法: 1. 阈值设置:对于基于概率的分器,可以设定一个阈值,当样例被分的概率低于该阈值时,将其拒绝分。 2. One-Class分器:这种分器主要用于异常检测。它只学习一个别的模型,如果一个样例与该别的模型不匹配或无法表示,就会被拒绝分。 3. 集成分器:通过多个分器的投票或概率平均等方式得到最终的分结果。如果多个分器都无法对一个样例给出明确的分结果,可以选择拒绝分。 需要注意的是,拒绝分可能会导致漏分别错误)或过滤分(正确别却被拒绝)的情况。因此,在使用拒绝分时需要权衡准确性和召回率,并选择合适的阈值或方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小马工匠坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值