教编程时停止虐待(虚拟)动物

你们当中有多少人在阅读有关编程教程的知识时遇到了这样的示例:

/* 
** Inheritance is useful when different classes share functionality. */
using System;
class Animal
{
protected string speakSound = "";

public void Speak() {
Console.WriteLine(speakSound);
}
}

class Cat : Animal
{
public Cat() {
this.speakSound = "Meow";
}
}

class Dog : Animal
{
public Dog() {
this.speakSound = "Woof";
}
}

class ZooClass
{
static void Main(string[] args) {
Cat cat = new Cat();
Dog dog = new Dog();

cat.Speak(); // Prints Meow
dog.Speak(); // Prints Woof
}
}

阅读此示例后有多少人认为:

“是的,我知道如何在实际应用程序中使用它”

该示例的作用是解释继承的工作原理,但是没有提供任何线索来说明您可以使用它解决什么问题,以及为什么它比解决问题的替代方法更好。 这就像将锤子解释为“一种有用的工具,它具有木制部分和金属部分,然后用金属部分敲打东西使其爆炸”。

“甜,我终于可以写我的Zoo Sounds文字冒险了”

编程模式和技术是工具,这是用来使其更容易实现复杂的行为或逻辑,同时在保持代码的维护,更容易打造。 对于初学者来说,大多数现实生活中的例子可能太复杂了,但我认为在1000行现实生活中的例子与“ Cow gos moo”之间存在中间立场。

使用真实项目中的真实示例进行教学

从一个真正的问题开始。 如果可能,在实际项目中(忽略与当前问题无关的任何细节)

“适用于早期Westwood游戏的开源实时战略游戏引擎,例如Command&Conquer:用C#编写的Red Alert…”

在“命令与征服:红色警戒”中,您将担任指挥作战派系一部分的一般角色。 您的目标是收集资源,建立基地并训练一支军队来粉碎您的对手。

图为:粉碎

在这个游戏中,您可以建立一个名为Spy的单位,该单位可以渗透到敌方建筑物中,并且根据所渗透的建筑物,可以引起不同种类的效果。

一些示例包括(来自CNC Wiki ):

当选择建筑物时, 机场显示当前生产的单位
显示当前着陆飞机上的弹药量
发电厂显示五格垂直指示敌人的力量状态
矿石精炼厂显示产能指标和当前持有的矿石量

现在的问题是: 我应该如何实现渗透的不同效果?

// Not like this
if (building.name == "Airfield") { airfieldInfiltration(); }
if (building.name == "Power Plant") { powerPlantInfiltration(); }
if (building.name == "Ore Refinery" { oreRefineryInfiltration(); }

大多数建筑物无法渗透,因此创建基类似乎并不正确,但是所有建筑物的行为截然不同,因此将所有内容归为一个类也不是正确的。

读者理解问题之后,您将提出解决方案: 接口

OpenRA使用名为INotifyInfiltrated在此声明 )的接口,该接口用于实现间谍进入敌方建筑物时的不同功能。 该接口针对任何可渗透的建筑物实现,并且效果行为可在每个不同的建筑物类内找到,而不是基类或if-else语句的大量对象。 (使用接口窃取现金的示例可以在此处找到。请注意,行为被包装在自己的类中,因为建筑物不是硬编码的,因此并不严格遵循所提供的示例,但是没有理由不能这样做) t)。

一个代码示例如下所示。 它不是自包含的,不会编译,但是我认为强制将其删除是有用的。 泡沫中不存在真正的问题。

public interface INotifyInfiltrated { 
void Infiltrated(Player playerInfiltrating);
}

class Airfield : INotifyInfiltrated
{
public void Infiltrated(Player playerInfiltrating) {
// Displays currently produced unit when
// the building is selected
Unit producingUnit = this.GetCurrentlyProducingUnit()
producingUnit.revealToPlayer(playerInfiltrating);

// Displays amount of ammunition on
// currently landed aircraft
Unit landedUnit = this.GetCurrentlyLandedUnit();
landedUnit.revealStatsToPlayer(playerInfiltrating);
}
}

class PowerPlant : INotifyInfiltrated
{
public void Infiltrated(Player playerInfiltrating) {
// Displays a five-box vertical indicator
// of enemy power status
this.revealPowerStatusToPlayer(playerInfiltrating);
}
}

class OreRefinery : INotifyInfiltrated
{
public void Infiltrated(Player playerInfiltrating) {
// Displays capacity indicator
//and amount of presently held ore
this.revealOreStatusToPlayer(playerInfiltrating);
}
}

现在,读者已经看到了如何使用接口解决实际编程问题的实际示例。 只要遇到类似问题,所需行为“对某些人而言是相似的,而对所有情况而言并非如此”,则他们可以应用此方法。

因此,在下次阅读此内容(也许有人在问有关接口的信息)之后,您不必拖出不良的虚拟猫狗吠叫就可以表达您的意思了。

From: https://hackernoon.com/stop-abusing-virtual-animals-when-teaching-programming-a64adc93525a

### 回答1: 虐待动物是一种非常严重的社会问题,而虐猫是其中最常见的一种。主要原因有以下几点: 1. 猫是家养动物。因为猫是常见的家养动物,所以它们更容易成为虐待的对象。而大型家畜如牛、羊等,由于需要在农田或牧场饲养,所以不太容易成为虐待的对象。 2. 猫没有很强的群居性。猫是独居动物,它们不喜欢与其他动物在一起。这使得它们更容易被虐待,因为它们没有任何保护。 3. 猫没有很强的社会地位。猫在社会上的地位并不高,它们不像狗那样受人们喜爱。这使得它们更容易成为虐待的对象。 4. 猫没有很强的保护意识。猫没有狗那样强烈的保护意识,它们不会对外界的威胁发出警告或抵抗。这使得它们更容易成为虐待的对象。 然而,虐待动物是不能容忍的行为,对于这种现象应该采取有效措施来防止和惩治。 ### 回答2: 虐待动物是一种残忍的行为,无论对任何动物都应该引起人们的警觉和谴责。然而,为什么虐待动物的普遍现象中,虐猫是最为常见的呢? 首先,猫在人类社会中的地位与其他动物相比可能更加特殊。猫是一种受人类喜爱和仰慕的宠物,它们没有被广泛用于农业或者劳动中。这使得猫在人们心中更具情感价值,也更容易出现虐待行为的引起关注。 其次,猫作为一种宠物,相较于狗等动物可能更容易遭受虐待。猫通常相对独立,不需要太多的关注和照顾。这使得一些人对猫的需求和感受缺乏敏感,容易忽视它们的需求和权益。 此外,虐待猫的行为也可能与对猫的误解和偏见有关。有些人可能认为猫是狡猾和恶劣的动物,会给人们带来不幸和坏运气。这种观念导致了对猫的不友善和甚至虐待行为。 最后,虐猫的行为在一些文化和地区中也有一定的传统和习俗根源。在一些地方,猫被看作是邪恶和灵异的象征,因此容易成为人们发泄情绪和满足其他目的的对象。 总之,虐待猫的普遍现象并不可取,不应该以任何理由为其辩解。保护动物权益,尤其是对于虐待行为,应该引起全社会的关注和共同努力去改变。 ### 回答3: 虐待动物的行为可谓是残忍和不道德的,无论是对猫还是其他动物。然而,我们常常听到的虐待动物的案例中,虐猫的情况确实比其他动物更普遍。 首先,猫作为人类的宠物之一,在人们的生活中扮演着重要的角色。人们更容易与猫建立亲密的关系,因为猫通常比较独立、可爱和逗人喜欢。与其他动物相比,猫更容易成为人们的陪伴和开心的源泉。因此,一些虐待猫的人可能是出于嫉妒或控制的动机,他们希望通过虐待这种受人喜爱的动物来获得某种满足感。 其次,猫的行为特征也可能是导致其遭受虐待的原因之一。猫通常比较敏感和独立,在某些情况下可能表现出惹人厌烦、不听话或愤怒等行为。这些行为可能引发一些人的不满和冲动,并导致他们对猫进行虐待。而其他动物可能不具备类似特征,因此虐待猫较虐待其他动物更为常见。 不论虐待哪种动物,都是一种无法容忍的行为。我们应该积极倡导保护动物权益的理念,严惩虐待动物的行为,并加强社会育,提高人们对动物的尊重和保护意识。只有通过共同的努力,我们才能够创造一个更美好和谐的社会环境,确保动物能够得到尊重和保护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值