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

企业网站建设的三种方式并举例seo咨询推广

企业网站建设的三种方式并举例,seo咨询推广,韩国企业网站设计,百度推广客服人工电话多少概述 定义:又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。 结构 在观察者模式…

概述

定义:又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。

结构

在观察者模式中有如下角色:
.Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象。
ConcreteSubiect:具体主题(具体被观察者),该角色将有关状态存入具体观察者对象,在具体主题的内部状态发生改变时,给所有注册过的观察者发送通知。
。 0bserver:抽象观察者,是观察者的抽象类,它定义了一个更新接口,使得在得到主题更改通知时更新自己。
.Concrere0bserver:具体观察者,实现抽象观察者定义的更新接口,以便在得到主题更改通知时更新自身的状态。

案例实现

在使用微信公众号时,大家都会有这样的体验,当你关注的公众号中有新内容更新的诟,它就会推送给关注公众号的微信用户端。我们使用观察者模式来模拟这样的场景,微信用户就是观察者,微信公众号是被观察者,有多个的微信用户关注了程序猿这个公众号。

类图如下

 抽象主题角色类

/*** @author: 龍弟* @description 抽象主题角色类* @date: 2023/2/14 23:44*/
public interface Subject {//添加订阅者(添加观察者对象)void attach(Observer observer);//删除订阅者void detach(Observer observer);//通知订阅者更新消息void notify(String message);
}

具体主题角色类

/*** @author: 龍弟* @description 具体主题角色类* @date: 2023/2/14 23:54*/
public class SubscriptionSubject implements Subject{//定义一个集合,用来存储多个观察者现象private List<Observer> weiXinUserList=new ArrayList<Observer>();@Overridepublic void attach(Observer observer) {weiXinUserList.add(observer);}@Overridepublic void detach(Observer observer) {weiXinUserList.remove(observer);}//通知@Overridepublic void notify(String message) {//遍历集合for (Observer observer : weiXinUserList) {//调用观察者对象中的update方法observer.update(message);}}
}

抽象观察者类

package com.longdi.observer;/*** @author: 龍弟* @description 抽象观察者类* @date: 2023/2/14 23:47*/
public interface Observer {void update(String name);//主题推送的更新内容}

具体观察者角色类

/*** @author: 龍弟* @description 具体的观察者角色类* @date: 2023/2/15 0:00*/
public class WeiXinUser implements Observer{private String name;public WeiXinUser(String name) {this.name = name;}@Overridepublic void update(String message) {System.out.println(name+ "-"+ message);}
}

优缺点

1、优点:

降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。
被观察者发送通知,所有注册的观察者都会收到信息【可以实现广播机制】

2、缺点

如果观察者非常多的话,那么所有的观察者收到被观察者发送的通知会耗时
如果被观察者有循环依赖的话,那么被观察者发送通知会使观察者循环调用,会导致系统崩溃
 

使用场景

对象间存在一对多关系,一个对象的状态发生改变会影响其他对象。

当一个抽象模型有两个方面,其中一个方面依赖于另一方面时。


JDK中提供的实现

在Java 中,通过java.util.bservable类和java.util.Observer接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例。
1,observable类
Observable 类是抽象目标类(被观察者),它有一个Vector 集合成员变量,用于保存所有要通知的观察者对象,下面来介绍它最重要的 3个方法。
void add0bserver(0bserver o)方法:用于将新的观察者对象添加到集合中。
void notifyObservers(Object arg)方法:调用集合中的所有观察者对象的update方法,通知它们数据发生改变。通常越晚加入集合的观察者越先得到通知。
void setChange ()方法:用来设置一个boolean类型的内部标志,注明目标对象发生了变化。当它为true时,notifvobservers ()才会通知观察者。

2,Observer接口
Observer 接口是抽象观察者,它监视目标对象的变化,当目标对象发生变化时,观察者得到通知,并调用update方法,进行相应的工作。
【例】警察抓小偷
警察抓小偷也可以使用观察者模式来实现,警察是观察者,小偷是被观察者。代码如下:小偷是一个被观察者,所以需要继承observable类

public class Thief extends Observable {private String name;public Thief(String name){this.name=name;}public String getName() {return name;}public void setName(String name) {this.name = name;}public void steal(){System.out.println("小偷:偷东西了,有没有人来抓我");super.setChanged();//changed=truesuper.notifyObservers();}
}

警察是一个观察者,所以需要让其实现Observer接口

public class policeman implements Observer {private String name;public policeman(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic void update(Observable o, Object arg) {System.out.println("警察:"+((Thief)o).getName()+",我已经盯你很久了,你可以保持沉默" );}
}

客户端代码

public class client {public static void main(String[] args) {//创建小偷对象Thief t=new Thief("隔壁老王");//创建警察对象policeman p=new policeman("小李");//让警察盯着小偷t.addObserver(p);//小偷偷东西t.steal();}
}


 


 

http://www.mmbaike.com/news/34121.html

相关文章:

  • 医疗网站专题怎样做淘宝运营培训
  • 素颜网站建设今日新闻热点
  • 房源开发网站seo网站优化详解
  • 建行系统沈阳seo关键词排名优化软件
  • 山东做网站公司有哪些上海网站seo
  • 线上免费编程课贵阳关键词优化平台
  • 动力网站百度官网认证多少钱一年
  • 企业年报入口官网查询系统郑州seo优化外包公司
  • 如何查看网站做没做301跳转网络推广网站推广淘宝运营商
  • 手机端怎样做网站建设seo企业培训班
  • youku网站开发技术注册网站免费注册
  • 各大网站推荐制作网站需要的技术与软件
  • 网站建设合同的要素及签订注意事项企业网站seo推广
  • 在服务器上布网站怎么做的公众号排名优化
  • 做微商什么是官方网站百度网盘客户端
  • 乐清企业网站建设宁波seo优化定制
  • 企业的营销型网站建设万能软文模板
  • 网站备案是域名备案还是服务器备案交换链接的例子
  • 网页做的很美的网站百度一下 你就知道首页
  • 常州网站制作优化自创网站
  • php响应式网站模板下载下载应用商店
  • 做营销型网站要多少钱seo上首页排名
  • 免费下载简历模板seo外链招聘
  • 网站设计建设 公司关键词首页排名代做
  • 北京网站制作是什么sem竞价
  • 源码购买网站关键词优化公司哪家效果好
  • 织梦网站怎样做锚文本安卓排名优化
  • 做网站虚拟服务器天津网站建设开发
  • 网站建设主要学什么佛山seo网站排名
  • 南昌做网站价格网络推广引流是做什么的