当前位置: 首页 > news >正文

视频解析网站建设购买网站域名

视频解析网站建设,购买网站域名,网站备案链接,十堰网站优化一、桥接模式 1.定义 将抽象部分与它的实现部分分离#xff0c;使它们可以独立地变化。 桥接模式通过使用组合关系而不是继承关系来实现解耦#xff0c;从而提高系统的灵活性和可扩展性。 2.组成 抽象#xff1a;定义抽象部分的接口#xff0c;包含一个指向实现类的对象…一、桥接模式 1.定义 将抽象部分与它的实现部分分离使它们可以独立地变化。 桥接模式通过使用组合关系而不是继承关系来实现解耦从而提高系统的灵活性和可扩展性。 2.组成 抽象定义抽象部分的接口包含一个指向实现类的对象的指针。扩展抽象扩展了抽象类实现抽象部分的接口并添加额外的行为。实现定义实现类的接口。具体实现实现了实现类的接口。 3.示例 //颜色类实现 class Color { public:virtual void applyColor() 0;virtual ~Color() {} };//红色具体实现 class Red :public Color { public:virtual void applyColor() override {cout Apply red color. endl;} };//蓝色具体实现 class Blue :public Color { public:virtual void applyColor() override {cout Apply blue color. endl;} };//形状类抽象 class Shape { protected:Color* color; public:Shape(Color* c) :color(c) {}virtual void draw() 0;virtual ~Shape() {delete color;} };//圆形扩展抽象 class Circle :public Shape { public:using Shape::Shape;virtual void draw() override {color-applyColor();cout Drawing a circle. endl;} };//矩形扩展抽象 class Rectangle :public Shape { public:using Shape::Shape;virtual void draw() override {color-applyColor();cout Drawing a rectangle. endl;} }; 测试代码 Color* red new Red(); Shape* circle new Circle(red); circle-draw(); Color* blue new Blue(); Shape* rect new Rectangle(blue); rect-draw(); delete circle; delete rect; 输出结果 Apply red color. Drawing a circle. Apply blue color. Drawing a rectangle. 二、享元模式 1.定义 运用共享技术有效地支持大量细粒度的对象。 享元模式能够共享已存在的对象实例而不是在需要时每次都创建新的对象实例从而避免大量重复对象的开销。 2.组成 抽象享元作为所有具体享元类的基类定义公共接口。具体享元实现抽象享元类规定的接口同时存储内部状态。并非所有的具体享元类都需要被共享。享元工厂维护一个享元池负责创建和管理享元对象。当需要享元对象时工厂会提供一个现有的实例或创建一个新的实例。 3.示例 //抽象享元 class Flyweight { public:virtual void display() 0;virtual ~Flyweight() {} };//字符样式具体享元 class CharStyle :public Flyweight { private:string font;int size;string color; public:CharStyle(string f, int s, string c):font(f), size(s), color(c) {}virtual void display() override {cout Font- font ,Size-;cout size ,Color- color endl;} };//享元工厂 class FlyweightFactory { private:unordered_mapstring, CharStyle* styleMap; public:CharStyle* getStyle(string f, int s, string c) {string key f to_string(s) c;if (styleMap.find(key) styleMap.end()) {cout 创建新字符样式: endl;styleMap[key] new CharStyle(f, s, c);}else {cout 字符样式已存在: endl;}return styleMap[key];}~FlyweightFactory() {for (auto [x, y] : styleMap)delete y;} }; 测试代码 FlyweightFactory* factory new FlyweightFactory(); Flyweight* style1 factory-getStyle(Arial, 12, Black); style1-display(); Flyweight* style2 factory-getStyle(Times New Roman, 14, Blue); style2-display(); Flyweight* style3 factory-getStyle(Arial, 12, Black); style3-display(); delete factory; 输出结果 创建新字符样式: Font-Arial,Size-12,Color-Black 创建新字符样式: Font-Times New Roman,Size-14,Color-Blue 字符样式已存在: Font-Arial,Size-12,Color-Black 三、外观模式 1.定义 为子系统中的一组接口提供一个一致的界面 外观模式定义了一个高层接口这个接口使得这一子系统更加容易使用。 外观模式将多个子系统的功能封装起来对外提供一个统一的接口。客户端只需要与外观类进行交互而不需要与子系统类交互从而降低了客户端与子系统之间的耦合度。 2.组成 子系统子系统可以是一组相互关联的类它们共同实现一个或多个功能。外观提供一个简化的接口用于访问子系统中的功能。客户端使用外观类提供的接口来访问子系统的功能无需了解子系统的具体实现。 3.示例 //厨房子系统 class Kitchen { public:void cookFood(const string dish) {cout 厨房正在制作: dish endl;} };//饮料机子系统 class BeverageMachine { public:void makeBeverage(string beverage) {cout 饮料机正在制作: beverage endl;} };//结账子系统 class Payment { public:void processPayment(double amount) {cout 结账系统正在处理: amount $ endl;} };//服务员外观 class Waiter { private:Kitchen* kitchen;BeverageMachine* beverageMachine;Payment* payment; public:void serveCustomer(string dish, string beverage, double amount) {kitchen-cookFood(dish);beverageMachine-makeBeverage(beverage);payment-processPayment(amount);cout 顾客的餐饮已准备好支付已处理。 endl;} }; 测试代码 Waiter* waiter new Waiter(); waiter-serveCustomer(汉堡, 可乐, 20.0); delete waiter; 输出结果 厨房正在制作: 汉堡 饮料机正在制作: 可乐 结账系统正在处理: 20$ 顾客的餐饮已准备好支付已处理。 四、状态模式 1.定义 允许一个对象在其内部状态改变时改变它的行为。 状态模式通过将对象的状态封装到不同的状态类中使得对象的行为可以根据其内部状态的变化而动态改变而不是通过大量的条件判断语句来实现。 2.组成 抽象状态定义一个接口用于封装特定状态下的行为。具体状态对应环境类的不同状态用于实现不同状态下环境类应有的行为。环境定义客户端感兴趣的接口同时维护一个具体状态类的实例这个实例代表当前对象的状态。 3.示例 class MobilePhone;//电量抽象状态类 class PowerState { public:virtual void handleApp(MobilePhone* phone) 0; };//电量充足状态具体状态类 class Full : public PowerState { public:virtual void handleApp(MobilePhone* phone) override; };//电量中等状态具体状态类 class Midium :public PowerState { public:virtual void handleApp(MobilePhone* phone) override; };//电量低状态具体状态类 class Low :public PowerState { public:virtual void handleApp(MobilePhone* phone) override; };//电量耗尽状态具体抽象类 class None :public PowerState { public:virtual void handleApp(MobilePhone* phone) override; };//手机环境类 class MobilePhone { private:int power;PowerState* state; public:MobilePhone() :state(new Full()), power(100) {}~MobilePhone() {delete state;}void setState(PowerState* s) {if (state) {delete state;}state s;}void startApp() {state-handleApp(this);}void setPower(unsigned int p) {power p;}int getPower() {return power;} };void Full::handleApp(MobilePhone* phone) {int power phone-getPower();if (power 100 power 60) {cout 当前电量 power % endl;cout 电量充足应用正常启动。 endl;}else {phone-setState(new Midium());phone-startApp();} }void Midium::handleApp(MobilePhone* phone) {int power phone-getPower();if (power 60 power 20) {cout 当前电量 power % endl;cout 电量中等请注意电量消耗。 endl;}else {phone-setState(new Low());phone-startApp();} }void Low::handleApp(MobilePhone* phone) {int power phone-getPower();if (power 20 power 1) {cout 当前电量 power % endl;cout 电量低启动应用可能影响手机运行 部分后台应用已关闭。 endl;}else {phone-setState(new None());phone-startApp();} }void None::handleApp(MobilePhone* phone) {int power phone-getPower();if (power 1 power 0) {cout 当前电量 power % endl;cout 手机已关机无法启动应用。 endl;} } 测试代码 MobilePhone* phone new MobilePhone(); int powers[]{ 90, 50, 10, 0 }; for (auto x : powers) {phone-setPower(x);phone-startApp(); } delete phone; 输出结果 当前电量90% 电量充足应用正常启动。 当前电量50% 电量中等请注意电量消耗。 当前电量10% 电量低启动应用可能影响手机运行 部分后台应用已关闭。 当前电量0% 手机已关机无法启动应用。
http://www.tj-hxxt.cn/news/137366.html

相关文章:

  • 企业网站建设的原则是中国企业公示信息网
  • 国外比较有名的设计工作室网站东莞已出现病例
  • wordpress 仿站最新的网站建设软件
  • Wordpress源码下载站主题资源网站建设反思
  • 怎么看网站是否织梦wordpress底部栏如何编辑
  • 电子商务 网站开发流量很大的网站
  • 手机网站是用什么开发的设计网站专业
  • 怎样才能在百度上搜到自己的网站湖北省建设主管部门网站
  • 烟台做网站建设电话快站科技是什么
  • 江苏省职业建设注册管理中心网站找装修
  • 网站推广公司认准乐云seo网站域名有什么用
  • 高端网站制作费用syntaxhighlighter wordpress使用
  • 四川省建设厅的注册中心网站首页网站快照明天更新是什么情况
  • 普陀网站制作网络推广平台几大类
  • 手机网站如何做郑州一建集团工程建设有限公司网站
  • 建网站基础需要学什么亳州电商网站建设
  • 网站假设教程软件下载网站开发
  • 江门市网站开发怎么注销自己名下的公司
  • 网站建设排名北京网络推广合作方式
  • 正定县住房和城乡建设局网站网站建设是指
  • 南京高端网站建设公司仿站是什么
  • 湛江模板建站系统淘宝上面如何做网站
  • 怎样增加网站的权重网站备案个人和企业的区别
  • 做网站后期自己可以维护吗百度app安装下载
  • 洛阳市建设工程评标专家网站孝感高新区建设局网站
  • 佛山网站建设联系手机号码定位网站开发
  • 南京做网站的客户电话广州网站建设培训
  • 自己有服务器怎么做网站横岗做网站
  • 米趋外贸网站建设手机网站建设ppt
  • 服装网站建设课程新手如何做服装网站