装饰模式【大话设计模式Demo】

摘要:
代码classDecoratePattern{staticvoidMain(string[]args){Personperson=newPerson("小菜");Sneakerydx=newSneaker();BigTrouserkk=newBigTrouser();TShirtsdtx=newTShirts();ydx.Decorate(person);kk.Decorate(ydx);dtx.

装饰模式【大话设计模式Demo】第1张

装饰模式【大话设计模式Demo】第2张装饰模式【大话设计模式Demo】第3张代码
classDecoratePattern
{
staticvoidMain(string[] args)
{
Person person
=newPerson("小菜");
Sneaker ydx
=newSneaker();
BigTrouser kk
=newBigTrouser();
TShirts dtx
=newTShirts();
ydx.Decorate(person);
kk.Decorate(ydx);
dtx.Decorate(kk);
dtx.Show();
Console.Read();
}
}
classPerson
{
publicPerson()
{ }
privatestringName;
publicPerson(stringname)
{
this.Name =name;
}
publicvirtualvoidShow()
{
Console.WriteLine(
"装扮的{0}", Name);
}
}
///<summary>///穿衣服的人
///</summary>classFinery : Person
{
protectedPerson component;
//打扮publicvoidDecorate(Person _component)
{
this.component =_component;
}
publicoverridevoidShow()
{
if(component !=null)
{
component.Show();
}
}
}
///<summary>///穿T恤的人
///</summary>classTShirts : Finery
{
publicoverridevoidShow()
{
Console.WriteLine(
"大T恤");
base.Show();
}
}
///<summary>///穿裤子的人
///</summary>classBigTrouser : Finery
{
publicoverridevoidShow()
{
Console.WriteLine(
"跨裤");
base.Show();
}
}
///<summary>///穿运动的人
///</summary>classSneaker : Finery
{
publicoverridevoidShow()
{
Console.WriteLine(
"跨裤");
base.Show();
}
}

免责声明:文章转载自《装饰模式【大话设计模式Demo】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇读书笔记: 博弈论导论eclipse部署项目到tomcat下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

DEP(数据执行保护)介绍

数据执行保护是一组软件和硬件技术,可以对内存执行额外检查,以帮助防止恶意代码在系统上运行。硬件实现DEP来检测从这些位置运行的代码,并在发现执行时抛出异常。此功能也称为非执行和执行保护。为了与DEP合作,AMD和微软共同设计并开发了AMD的新芯片功能“增强病毒防护”。[1] DEP的安全机制,即“数据执行保护”,是一种Windows安全机制,主要用于防止病毒...

Json 的日期格式转化(时区标准化)

在JavaScript中,这无疑可以通过初始化Data()对象//converttomsecsinceJan11970localTime=d轻松完成。获取时间();步骤2:接下来,通过Data()对象的getTimezoneOffset()方法//obtainlocalUTCoffsetandconverttomseclocalOffset=d找出本地时间偏...

winform窗体(六)——DataGridView控件及通过此控件中实现增删改查

“,”Delete Data“,btn)==DialogResult.Yes){}V.多条件查询。如果用户没有输入任何内容或文本框为空,则查询所有内容。//设置两个常量条件stringtj1=”1=1“;stringtj2=”1=1”;//根据用户的输入更改条件。//如果用户输入名称If(name!=”“){tj1=“Namelike@name“;}//如果...

springMVC使用map接收入参 + mybatis使用map 传入查询参数

测试示例:控制器层使用映射来接收请求参数。从Debug中可以看到,请求中的参数值都是字符串形式。如果接收参数的映射直接传输到服务,mybatis将在接收参数时报告错误。因此,您需要首先对请求中的参数1packageorg.slsale进行预处理。测验23导入java.util。日期4导入java.util。HashMap;5导入java.ut...

建行手机银行4.0版本转账怎么不要求输入支付密码?

建行手机银行单笔限额50万,日限额100万,这个6位数的验证码价值50万元!输入6个数字的支付密码只需要几秒钟而已,转账操作频率不是很高,手机银行转账速度比人工柜台、ATM、电脑网银转账速度不知道快了多少倍,输入6个数字的支付密码这几秒钟相对安全性算什么呢?另外建行还有帐号支付的方式,对电子商户日限额10000元,只需要帐号+手机验证码就可以支付,密码都不用...

dbeaver 驱动安装

一、背景:在Windows10安装dbeaver数据库连接工具,点“测试连接”的时候出现报错如下:ErrorresolvingdependenciesMavenartifact'maven:/mysql:mysql-connector-java:RELEASE'nofound经网上查询是dbeaver驱动无法下载的问题。二、解决方法:打开“窗口”-˃“首选项...