Phone类的怎么实现

技术Phone类的怎么实现这篇文章主要讲解了“Phone类的怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Phone类的怎么实现”吧! Decorat

本文主要讲解“如何实现Phone类”。本文的解释简单明了,易学易懂。请跟随边肖的思路一起学习和学习“如何实现手机课堂”!

装饰模式从类中移除了装饰函数,从而简化了原始类。创建一个新的类来处理这些装饰功能。

装饰模式:动态地给对象添加一些额外的职责。在添加函数方面,装饰模式比生成子类更灵活。有时我们想给一个对象而不是整个类添加一些函数。比如有一款手机,可以让你给手机添加功能,比如添加挂件、屏幕贴纸等等。一种灵活的设计方法是将手机嵌入到另一个对象中,这个对象可以添加功能。我们称之为嵌入式物体装饰。这种装饰与它所装饰的组件接口是一致的,因此对于使用组件的客户来说是透明的。装饰器模式的UML图如下。

Phone类的怎么实现

在这种设计中,手机的装饰功能是独立的,可以独立开发,从而简化了特定手机的设计。电话类的实现如下所示:

//公共抽象类

课堂电话

{

公众号:

Phone(){}

虚拟~电话(){}

virtualvoitshowDetail(){ }

};特定手机类别的定义。

//特定手机类别

classiPhone:publicPhone公共电话

{

私人:

stringm _ name//手机名称

公众号:

iPhone(string name):m _ name(name){ }

~iPhone(){}

装饰结束;of void show definition(){ coutm _ name ' }

};

//特定手机类别

类别诺基亚电话:公共电话

{

私人:

stringm _ name

公众号:

诺基亚手机(stringname):m_name(name){}

~诺基亚手机(){}

装饰结束;of void show definition(){ coutm _ name ' }

};装修班的实施:

/装饰类别

类别装饰电话:公共电话

{

私人:

Phone * m _ phone//待装修手机

公众号:

装饰手机(电话*电话):m_phone(电话){}

virtualvoidShowDecorate装修(){ m _ phone-show装修();}

};

//具体装修类别

class decoratororphone a : public decoratororphone

{

公众号:

装饰电话(电话*电话):装饰电话(电话){}

空隙显示装饰(){装饰字体:3360如何装饰();addDePartment();}

私人:

void department(){ cout ' Add pendant ' endl;}//增加了装饰

};

//具体装修类别

class decoratororphone b : public decoratororphone

{

公众号:

装饰手机b(电话*电话):装饰手机(电话){}

空隙显示装饰(){装饰字体:3360如何装饰();addDePartment();}

私人:

void department(){ cout ' screen paste ' endl;}//增加了装饰

};客户使用情况:

intmain()

{

phone * phone=new nokiaaphone(' 6300 ');

Phone*dpa=newDecoratorPhoneA(电话);//装饰,增加挂件

Phone*dpb=newDecoratorPhoneB(电话);//装饰,屏幕粘贴

dpb-show装修();

deletedpa

deletedpb

deleteiphone

返回0;

} decorator pattern动态地向现有函数添加一些函数。当系统需要新功能时。向旧代码添加不重要的新函数违反了开放封闭原则。我们经常使用一个新的类来处理新函数的添加。新类包含要修饰的对象。有效区分班级的核心责任和装饰功能。

感谢阅读。以上就是《如何实施电话课堂》的内容。学习完这篇文章,相信你对Phone类如何实现有了更深的理解,具体用法还需要实践验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/137951.html

(0)

相关推荐

  • HTML5如何使用video

    技术HTML5如何使用video小编给大家分享一下HTML5如何使用video,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对video的支持

    攻略 2021年11月24日
  • 肝癌的早期症状和前兆,肝癌初期会有几种小毛病

    技术肝癌的早期症状和前兆,肝癌初期会有几种小毛病肝癌早期的症状并不典型,多数都是消化系统常见的主要症状肝癌的早期症状和前兆。一般来讲可以表现为早饱、反酸、嗳气、腹胀、纳差等表现。而且这些表现也不是特异性的表现,常常以为是

    生活 2021年10月23日
  • asmdisk对应的磁盘分区信息是什么

    技术asmdisk对应的磁盘分区信息是什么这篇文章主要介绍了asmdisk对应的磁盘分区信息是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    攻略 2021年11月12日
  • Atomikos + druid 多数据源数据库连接超时回收问题怎么解决

    技术Atomikos + druid 多数据源数据库连接超时回收问题怎么解决Atomikos + druid 多数据源数据库连接超时回收问题怎么解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细

    攻略 2021年12月1日
  • Tcp协议的连接

    技术Tcp协议的连接 Tcp协议的连接Tcp协议是面向连接的协议,因为它具有握手过程
    Tcp连接是成对出现的,是点对点的三次握手客户端和服务器端通信的时候,主要发生下面三个过程
    1.客户端给服务器发送一

    礼包 2021年11月27日
  • Linux DRM平台驱动匹配和探测的方法是什么

    技术Linux DRM平台驱动匹配和探测的方法是什么本篇内容介绍了“Linux DRM平台驱动匹配和探测的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这

    攻略 2021年11月23日