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

怎么运行自己做的网站开发企业app公司

怎么运行自己做的网站,开发企业app公司,电脑怎么建网站详细步骤,网上商城网站开发公司观察者模式#xff08;Observer#xff09; 观察者模式#xff08;Observer#xff09;简介#xff1a; 定义一个一对多的依赖关系#xff0c;让多个观察者对象监听某个主题对象#xff0c;当主题对象的状态发生改变时#xff0c;主题对象则通知所有的观察者对象#…观察者模式Observer 观察者模式Observer简介 定义一个一对多的依赖关系让多个观察者对象监听某个主题对象当主题对象的状态发生改变时主题对象则通知所有的观察者对象做出相应的反应更新自己的状态等。 观察者模式结构图 C代码 Subject抽象类以及ConcreteSubject具体实现类 //file: Subject.h#pragma once#include Observer.h#include vectorusing namespace std;class Subject{public:Subject();virtual ~Subject();void attach(Observer *pObserver);void detach(Observer *pObserver);void notify();virtual int getState() 0;virtual void setState(int i) 0;private:vectorObserver * m_vtObj;};class ConcreteSubject : public Subject{public:ConcreteSubject();virtual ~ConcreteSubject();virtual int getState();virtual void setState(int i);private:int m_State;};//file: Subject.cpp#include pch.h#include Subject.h//SubjectSubject::Subject() {}Subject::~Subject() {}void Subject::attach(Observer *pObserver){m_vtObj.push_back(pObserver);}void Subject::detach(Observer *pObserver){for (vectorObserver *::iterator iter m_vtObj.begin(); iter ! m_vtObj.end(); iter){if (*iter pObserver){m_vtObj.erase(iter);return;}}}void Subject::notify(){for (vectorObserver *::iterator iter m_vtObj.begin(); iter ! m_vtObj.end(); iter){(*iter)-update(this);}}//ConcreteSubjectConcreteSubject::ConcreteSubject() {}ConcreteSubject::~ConcreteSubject() {}int ConcreteSubject::getState(){return m_State;}void ConcreteSubject::setState(int i){m_State i;}Observer抽象类以及ConcreteObserver具体观察者类 //file: Observer.h#pragma once#include stringusing namespace std;class Subject;class Observer{public:Observer();virtual ~Observer();virtual void update(Subject *ps) 0;};class ConcreteObserver : public Observer{public:ConcreteObserver(string pName);virtual ~ConcreteObserver();virtual void update(Subject *ps);private:string m_ObjName;int m_ObserverState;};//file: Observer.cpp#include pch.h#include Subject.h#include Observer.h#include iostreamusing namespace std;//ObserverObserver::Observer() {}Observer::~Observer() {}//ConcreteOberverConcreteObserver::ConcreteObserver(string pName){m_ObjName pName;}ConcreteObserver::~ConcreteObserver() {}void ConcreteObserver::update(Subject *ps){m_ObserverState ps-getState();cout update observer m_ObjName to state m_ObserverState ! endl;}客户端代码 //file: ObserverPattern.cpp : This file contains the main function. Program execution begins and ends there.#include pch.h#include Subject.hint main(){Subject *sub new ConcreteSubject();Observer *objA new ConcreteObserver(A);Observer *objB new ConcreteObserver(B);sub-attach(objA);sub-attach(objB);sub-setState(101);sub-notify();sub-detach(objB);sub-setState(102);sub-notify();delete sub;delete objA;delete objB;return 0;}C#代码 观察者模式实现 Subject抽象类以及ConcreteSubject具体实现类 public abstract class Subject{private ListObserver objList new ListObserver();public int State { get; set; }public void Attach(Observer obj){objList.Add(obj);}public void Detach(Observer obj){objList.Remove(obj);}public void Notify(){foreach (Observer o in objList){o.Update(this);}}}public class ConcreteSubject : Subject{}Observer抽象类以及ConcreteObserver具体观察者类 public abstract class Observer{public abstract void Update(Subject sub);}public class ConcreteObserver : Observer{int m_State;string m_Name;public ConcreteObserver(string name){this.m_Name name;}public override void Update(Subject sub){this.m_State sub.State;Console.WriteLine(Update Observer {0} to state {1} ., m_Name, m_State);}}客户端代码 class Program{static void Main(string[] args){Subject sub new ConcreteSubject();Observer objA new ConcreteObserver(A);Observer objB new ConcreteObserver(B);sub.Attach(objA);sub.Attach(objB);sub.State 101;sub.Notify();sub.Detach(objB);sub.State 102;sub.Notify();Console.ReadKey(false);}} 事件委托实现 抽象Subject类以及委托方法原型以及ConcreteSubject具体实现类 public delegate void EventHander(Subject sub);public abstract class Subject{public int State { get; set; }public abstract void Notify();}public class ConcreteSubject : Subject{public event EventHander Update;public override void Notify(){if (Update ! null)Update(this);}}ConcreteObserverA/B具体实现类 public class ConcreteObserverA{public int State { get; set; }public string Name { get; set; }public ConcreteObserverA(string name){Name name;}public void FuncA(Subject sub){this.State sub.State;Console.WriteLine(Update Observer {0} to state {1} ., Name, State);}public void FeatureA(Subject sub){this.State sub.State;Console.WriteLine(Update Observer {0} to state {1} ., Name, State);}}public class ConcreteObserverB{public int State { get; set; }public string Name { get; set; }public ConcreteObserverB(string name){Name name;}public void FuncB(Subject sub){this.State sub.State;Console.WriteLine(Update Observer {0} to state {1} ., Name, State);}public void FeatureB(Subject sub){this.State sub.State;Console.WriteLine(Update Observer {0} to state {1} ., Name, State);}}客户端代码 class Program{static void Main(string[] args){ConcreteSubject sub new ConcreteSubject();ConcreteObserverA objA new ConcreteObserverA(ConcreteObserverA);ConcreteObserverB objB new ConcreteObserverB(ConcreteObserverB);sub.Update objA.FuncA;sub.Update objB.FeatureB;sub.State 101;sub.Notify();sub.Update - objB.FeatureB;sub.State 102;sub.Notify();Console.ReadKey(false);}}运行实例 REF 书籍 设计模式与游戏开发、大话设计模式 GitHub https://github.com/me115/design_patterns 转载于:https://www.cnblogs.com/sylvan/p/9064150.html
http://wiki.neutronadmin.com/news/290490/

相关文章:

  • 深圳国外网站建设汽车网页模板
  • 搜索引擎有哪些网站国外建设网站情况报告
  • 专业公司网站开发服务优质ppt模板免费下载
  • php网站建设制作流程响应式网站 cms
  • wordpress全站链接网站ie不兼容
  • 机票网站建设山东潍坊网站制作公司
  • 房屋网站模板wordpress qq微信登陆地址
  • 网站无法导入照片wordpress的使用方法
  • 淄博著名网站开发方法中文在线っと好きだっ
  • 唐山网站建设开发做名片最好的网站
  • 阿里巴巴国际站关键词推广广州哪里有做网站的
  • 东莞什么行业做网站的多太原室内设计公司排名
  • 怎样做机械租赁的网站注册公司最好用老年人
  • 企业展示型电商网站模板招工 最新招聘信息58同城
  • 郑州app网站公司住房和城乡规划建设局官方网站
  • 怎么做网站平台中国十大网络安全公司排名
  • 小程序是怎么制作出来的门户网站做seo
  • 佛山企业网站建设教程微信公众号做电影网站要域名吗
  • 用手机可以做网站吗网站开发安全性分析
  • 有做企业网站的吗creative建网站平台
  • 安宁市建设局网站电子商务的就业方向是什么
  • 北京网站建设公司分享网站改版注意事项北京小程序制作首选华网天下
  • 网站开发音乐做网站江西
  • 网站底部优化文字网销怎么销售的
  • 成都系统网站建设制作网站首先要知道什么
  • 如何开发网站自己做站长罗伯特清崎说的网络营销是什么
  • asp网站图片不显示无锡关键词优化价格
  • 网站在线支付接口申请娃娃修复师的工作主要是什么
  • 中国第四冶金建设有限公司官方网站做网站用什么cms
  • 网站 点击率品牌设计论文题目