csharp进阶练习题:PatternCraft - 装饰【难度:2级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

csharp进阶练习题:PatternCraft - 装饰【难度:2级】:

装饰设计模式可用于,例如,在星际游戏管理升级.

该模式由与附加功能"增量"的基础类.

装饰器将收到的基类的实例,并用它来与你想补充说:"它的"新事物创建一个新的实例.

你的任务

完成代码,这样,当一个Marine得到一个WeaponUpgrade它增加了1的伤害,如果它是一个然后ArmorUpgrade通过1增加护甲.

你有3类:

- Marine:有一个damagearmor性质
   - MarineWeaponUpgradeMarineArmorUpgrade:升级适用于海洋.接受一个Marine在构造并具有相同的属性Marine

Resouces

- PatternCraft>装饰
   - SourceMaking>装饰
   - 维基百科>装饰

PatternCraft系列

- 状态模式
   - 策略模式
   - 访问者模式
   - ** 装饰模式**
   - 适配器模式
   - 命令模式

原来[PatternCraft系列(由约翰·林奎斯特)(https://www.youtube.com/playlist?list=PL8B19C3040F6381A2)是Youtube视频的集合,解释了一些设计模式以及如何使用它们(或者可能是)在星际争霸.

编程目标:

using System;
public interface IMarine
{
    int Damage { get; set; }
    int Armor { get; set; }
}
public class Marine : IMarine
{
    public Marine(int damage, int armor)
    {
        Damage = damage;
        Armor = armor;
    }
    public int Damage { get; set; }
    public int Armor { get; set; }
}
public class MarineWeaponUpgrade : IMarine
{
    private IMarine marine;


测试样例:

using System;
using NUnit.Framework;
[TestFixture]
public class KataTest
{
    [Test]
    public void _0_SingleUpgrade()
    {
        Assert.AreEqual(11, new MarineWeaponUpgrade(marine).Damage);
        Assert.AreEqual(11, new MarineWeaponUpgrade(marine).Damage);
    }
    [Test]
    public void _1_DoubleUpgrade()
    {


最佳答案(多种解法):

点击查看答案

更多关联题目:

免责申明

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/patterncraft-decorator

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值