如何管理使用织梦制作的基于asp的医疗网站?
摘要:基于asp的医疗网站开发,用织梦做的网站怎么管理,网络系统管理技能大赛考什么,丝足网站的建设装饰模式的定义 装饰模式也可以称为封装模式,所谓的封装就是在原有行为之上进行扩展,并不会
基于asp的医疗网站开发,用织梦做的网站怎么管理,网络系统管理技能大赛考什么,丝足网站的建设装饰模式的定义
装饰模式也可以称为封装模式#xff0c;所谓的封装就是在原有行为之上进行扩展#xff0c;并不会改变该行为#xff1b; 例如网络通信#xff1a; 在进行网络通信的时候#xff0c;数据是基于IOS七层或四层网络模型#xff08;某些层合并之后就是四层模型…装饰模式的定义
装饰模式也可以称为封装模式所谓的封装就是在原有行为之上进行扩展并不会改变该行为 例如网络通信 在进行网络通信的时候数据是基于IOS七层或四层网络模型某些层合并之后就是四层模型进行传输通过下图可得知从应用层到物理层数据每向下走一层就会被封装一层最后将封装好的数据以比特流的方式发送给接收端。封装之后数据只是变得更复杂了, 并没有改变它是数据的本质。 加解密是对数据的装饰但是没有改变数据的本质。 防护服是对人的装饰没有改变本体是人的本质。
装饰模式组成装饰模式是一种结构型设计模式他允许你在运行时为对象动态的添加新的行为而无需修改其源代码。
在装饰模式中有四个主要角色 抽象组件定义了被装饰对象的接口它可以是一个抽象类或接口。在抽象组件中定义了待装饰对象的基本操作 具体组件实现了抽象组件的接口是被装饰的原始对象 装饰器实现了抽象组件接口并持有一个抽象组件对象的引用。装饰器可以通过对被装饰对象的包装来扩展其功能。 具体装饰器具体装饰器是装饰器的具体实现它通过在具体组件的基础上添加额外的功能来装饰对象。
代码实例
#include iostream
#include fstream
#include string
using namespace std;/*我要做的是写一个吃了很多恶魔果实的黑胡子
* 每吃一个恶魔果实黑胡子就会获得相应的技能
* 这个就相当于装饰自己
*/
/*定义一个抽象战士类
*有了这个抽象类就可以对某个人或者某个恶魔果实的战力进行具体的实现
*这个类有两个方向
* 1.派生出某个具体的战士比如黑胡子
* 2.派生出恶魔果实类因为战士是恶魔果实的载体这些恶魔果实可以装饰这个战士
*/
class Soldier
{
public:Soldier() {}Soldier(string name) :m_name(name) {}string getName(){return m_name; //获取战士的名字}virtual void fight() {} //所有战士都可以战斗virtual ~Soldier() {}
protected:string m_name string(); //战士的名字
};
//实例化战士:黑胡子
class Teach :public Soldier
{
public:using Soldier::Soldier;//继承构造使用父类的构造函数不是很理解这个东西void fight() override{cout m_name 依靠惊人的力量和高超的体术战斗... endl;}
};
/*恶魔果实基类
*这里一件很重要额操作就是指定载体就是这个恶魔果实谁来吃
*这个还是个抽象类因为没有重写父类的fight方法
*派生3个类暗暗果实大饼果实震震果实
*/
class DevilFruit :public Soldier
{
public://附魔函数指定载体void enchantment(Soldier* soldier){m_soldier soldier;m_name soldier-getName();}
protected:Soldier* m_soldier nullptr;
};
/*暗暗果实
* 继承恶魔果实
*/
class DarkFruit :public DevilFruit
{
public:void fight() override{m_soldier-fight();//吃果实前的能力cout m_soldier-getName() 吃了暗暗果实, 可以拥有黑洞一样的无限吸引力... endl;}
private:void warning() //定义类独有的方法{cout m_soldier-getName() 你要注意: 吃了暗暗果实, 身体元素化之后不能躲避攻击会吸收所有伤害! endl;}
};/*震震果实
* 继承恶魔果实
*/
class QuakeFruit :public DevilFruit
{
public:void fight() override{m_soldier-fight();cout m_soldier-getName() 吃了震震果实, 可以在任意空间引发震动, 摧毁目标...! endl;}
};// 大饼果实
class PieFruit : public DevilFruit
{
public:void fight() override{m_soldier-fight();cout m_soldier-getName() 吃了大饼果实, 获得大饼铠甲...! endl;ability();}void ability(){cout 最强辅助 -- 大饼果实可以将身边事物变成大饼, 帮助自己和队友回血... endl;}
};
int main()
{Soldier* teach new Teach(黑胡子);DevilFruit* dark new DarkFruit;DevilFruit * quake new QuakeFruit;DevilFruit* pie new PieFruit;dark-enchantment(teach); //用暗暗果实装饰黑胡子quake-enchantment(dark); //用震震果实装饰吃了暗暗果实的黑胡子pie-enchantment(quake); //用大饼果实装饰吃了暗暗果实和震震果实的黑胡子pie-fight();delete pie;delete quake;delete dark;delete teach;return 0;}
