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

网站首页原型图咋做一般做企业网站需要什么资料

网站首页原型图咋做,一般做企业网站需要什么资料,外贸做网站的好处,北京网站建设软件设计模式-07 设计模式-观察者模式#xff08;Observer Pattern#xff09; 1.定义 观察者模式是一种软件设计模式#xff0c;它定义了一种一对多的依赖关系#xff0c;其中一个对象#xff08;称为“主题”#xff09;维护了一个依赖对象的列表#xff08;称为“观察者”…设计模式-07 设计模式-观察者模式Observer Pattern 1.定义 观察者模式是一种软件设计模式它定义了一种一对多的依赖关系其中一个对象称为“主题”维护了一个依赖对象的列表称为“观察者”并且当主题的状态发生变化时它会自动通知所有观察者。 2.内涵 换句话说观察者模式允许对象订阅其他对象并接收有关其状态更改的通知。主题对象负责管理观察者列表并通知它们任何状态更改。 涉及到的相关术语 主题Subject维护观察者列表并通知它们状态更改的对象。观察者Observer订阅主题并接收有关其状态更改的通知的对象。具体主题Concrete Subject实现主题接口并维护具体状态和观察者列表的类。具体观察者Concrete Observer实现观察者接口并定义对主题状态更改的响应的类。 工作原理,当观察者模式使用时 观察者向主题注册表示他们有兴趣接收状态更改通知。主题维护一个观察者列表其中包含所有已注册的观察者。当主题的状态发生变化时它会遍历观察者列表并调用每个观察者的 update() 方法。观察者收到通知并相应地更新自己的状态。 3.使用案例 #include iostream #include vector// Observer interface class Observer { public:virtual void update(float temperature, float humidity, float pressure) 0; };// Subject (WeatherStation) class class WeatherStation { private:float temperature;float humidity;float pressure;std::vectorObserver* observers;public:void registerObserver(Observer* observer) {observers.push_back(observer);}void removeObserver(Observer* observer) {// You can implement the removal logic if needed.}void notifyObservers() {for (Observer* observer : observers) {observer-update(temperature, humidity, pressure);}}void setMeasurements(float temp, float hum, float press) {temperature temp;humidity hum;pressure press;notifyObservers();} };// Concrete Observer class Display : public Observer { public:void update(float temperature, float humidity, float pressure) {std::cout Display: Temperature temperature °C, Humidity humidity %, Pressure pressure hPa std::endl;} };int main() {WeatherStation weatherStation;// Create displaysDisplay display1;Display display2;// Register displays as observersweatherStation.registerObserver(display1);weatherStation.registerObserver(display2);// Simulate weather data updatesweatherStation.setMeasurements(25.5, 60, 1013.2);weatherStation.setMeasurements(24.8, 58, 1014.5);return 0; } 4.注意事项 观察者模式的优点包括 松散耦合观察者和主题是松散耦合的这意味着它们可以独立更改而不会影响彼此。可扩展性可以轻松地向系统中添加或删除观察者而不会影响主题或其他观察者。可重用性观察者模式可以轻松地应用于不同的应用程序和领域。 观察者模式的缺点包括 性能开销当主题的状态经常更改时通知所有观察者可能会产生性能开销。通知顺序观察者模式不保证观察者将按特定顺序收到通知。内存占用如果有很多观察者订阅主题主题需要维护一个很大的观察者列表这可能会导致内存占用增加。 5.最佳实践 使用接口而不是具体类主题和观察者接口应该用于定义主题和观察者之间的关系而不是使用具体类。这提高了代码的可重用性和灵活性。使用弱引用观察者应该使用弱引用持有对主题的引用。这可以防止循环引用并允许在观察者不再需要时自动释放它们。考虑使用事件对象事件对象可以用来封装状态更改通知。这可以提供更丰富的通知其中包含有关状态更改的附加信息。使用主题层次结构当需要对不同类型的状态更改进行更精细的控制时可以使用主题层次结构。这允许观察者只订阅他们感兴趣的特定状态更改。 使用观察者模式需要考虑优化通知性能如果主题的状态经常更改可以使用以下技术来优化通知性能 使用位掩码或标志来跟踪已更改的状态方面。批量处理观察者通知。使用异步通知机制例如消息队列。使用线程安全如果主题或观察者可能从多个线程访问则需要使用线程安全技术例如互斥锁或原子操作。考虑使用第三方库有许多第三方库提供了观察者模式的实现可以简化其在应用程序中的使用。 6.总结 仅在需要时使用观察者模式。它可能会引入一些开销和复杂性。心中明白清楚地定义观察者订阅和取消订阅的机制。考虑使用观察者模式的变体例如发布/订阅模式或模型-视图-控制器 (MVC) 模式。在设计观察者模式时牢记 SOLID 原则单一职责、开放/封闭、里氏替换、接口隔离和依赖反转。
http://www.dnsts.com.cn/news/121207.html

相关文章:

  • 网页在线制作网站源码网站建设与管理插图
  • 诚信快捷小企业网站建设做股权众筹的网站
  • 淘宝网站开发的意义后台管理网站开发
  • 唐河微网站建设百度网络营销中心
  • 百度手机模板网站青海城乡建设部网站首页
  • 营销型企业网站建设规划探讨wordpress生成xml
  • 广州白云区建站外贸公司陕西省交通建设公司网站
  • 山网站建设来个网站好人有好报2024
  • 建筑网站图纸wordpress网站安全性
  • 网站建设怎么做wordpress app端
  • 杭州科技公司排名优化大师的作用
  • 网站开发的就业做地方网站
  • 企业建站平台哪个好怎样手机网站建设
  • 图书馆网站结构怎么做本地推广平台有哪些
  • 资源企业网站排名优化价格做网站里面的图片像素要求
  • 营销型网站建设的重要原则如何做电商直播
  • 网站过期怎么办四川营销
  • 华泰保险公司官方网站程序员培训班要多少钱
  • 网站备案状态查询购物网站开发视频教程
  • 网站开发开题报告引言网站网上商城建设方案
  • 老域名对做网站的义乌外贸网站建设
  • 网站建设和网站设计怎么在百度建个网站
  • 网站设计页面如何做居中自己注册一个网站要多少钱
  • 网站的维护方案百度普通收录
  • 怎么让公司网站显示官网做跨境电商开店流程
  • 泊头市建设局网站橙色企业网站源码
  • eclipse视频网站开发网站名注册
  • 影视网站源码下载网页传奇哪个最火
  • 云南省建设项目申报网站网站设计一般包括网站结构设计
  • php网站开发哪个培训学校好郴州网络营销推广