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

网店的网站设计方案制作网页的代码html

网店的网站设计方案,制作网页的代码html,百度站长平台官网死链提交,wordpress如何添加自定义元素【-1】README-1.1#xff09;本文部分文字描述转自“head first 设计模式”#xff0c;旨在学习 远程代理对象 的基础知识#xff1b;-1.2#xff09;多线程实现糖果自动售卖机监控程序为原创#xff1b;-1.3#xff09;博文最后#xff0c;转载了代理模式的定义#…【-1】README-1.1本文部分文字描述转自“head first 设计模式”旨在学习  远程代理对象 的基础知识-1.2多线程实现糖果自动售卖机监控程序为原创-1.3博文最后转载了代理模式的定义-1.4本文中的代码用到了状态模式中的“糖果自动哦售卖机”的中奖事件for spec info ,please visit  http://blog.csdn.net/pacosonswjtu/article/details/50986380【0】需求描述1problemsolution 1.1problem问题在于监视器和糖果机在同一个 jvm 上面执行而售卖机的boss的需求是远程监控糖果售卖机希望在其桌面上远程监控这些机器。 1.2solution所以我们可以不要变化 CandyMachineMonitor 不要将糖果机交给 monitor而是将一个远程对象的代理交给他干货——引入远程代理 2远程代理和本地代表这是一种对象活在不同的jvm 堆中更确切地说在不同的地址空间运行的远程对象。本地代表这是一种可以由本地方法调用的对象其行为会转发到远程对象中 【1】远程代理技术相关1RMI提供了 客户辅助对象称为stub桩和服务辅助对象称为skeleton骨架干货——stub客户辅助对象 而skeleton服务辅助对象2制作远程服务换句话说这些步骤将一个普通的对象变成可以被远程客户调用的远程对象step1制作远程接口 远程接口定义出可以让客户远程调用的方法step2制作远程实现为远程接口中定义的远程方法提供真正的实现step3其中RMI registryrmiregistry rmiregistry如同电话簿客户可以从中查找到代理的位置step4开始远程服务你必须让服务对象开始运行。你的服务实现类会去实例化一个服务的实例并将这个服务注册到RMI registry。注册之后这个访问就可以供客户调用了 3制作远程服务代码实例(for downloading source code, please visithttps://github.com/pacosonTang/HeadFirstDesignPattern/tree/master/chapter11_proxyPattern/chapter11_rmi)3.1制作远程接口服务端step1扩展Remotestep2声明所有的方法都会抛出  RemoteExceptionstep3确定变量和返回值是属于原语类型或可序列化类型 这不难理解。远程方法的变量必须被打包并通过网络运送这要靠序列化来完成。如果你使用原语类型字符串和许多API中定义的类型包括数组和集合这都不会有问题。如果你传送自定义的类就必须保证你的类实现了 Serializable // 制作远程接口, 声明所有的方法都会抛出 RemoteException public interface MyRemote extends Remote{// 确定变量和返回值是属于原语类型或可序列化类型// String 类型就是可序列化的public String sayHello() throws RemoteException; } 3.2制作远程实现服务端step1实现远程接口你的访问必须要实现远程接口也就是客户将要调用的方法的接口step2扩展 UnicastRemoteObject为了要称为远程服务对象你的对象需要某些远程的功能最简单的方式就是扩展 UnicastRemoteObjectstep3设计一个不带变量的构造器并声明为 RemoteException 你的超类UnicastRemoteObject 带来一个小问题 它的构造器抛出一个 RemoteException。解决方法是 为你的远程实现声明一个构造器这样就有了一个声明 RemoteException的地方。// 制作远程实现 public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote{private static final long serialVersionUID 2494818195984623711L;protected MyRemoteImpl() throws RemoteException {super();}Overridepublic String sayHello() throws RemoteException {return every body say, xiao tang tang;}public static void main(String[] args) {try {MyRemote service new MyRemoteImpl();Naming.rebind(hehe, service);} catch (Exception e) {e.printStackTrace();}} }step4用RMI Registry 注册此服务 现在你已经有一个远程服务了必须让它可以被远程客户调用。你要做的就是将此服务实例化然后放进RMI registry中。当注册这个实现对象时RMI 系统其实注册的是stub因为这是客户真正需要的。注册服务使用了 java.rmi.Naming 类的静态rebind方法如上述代码 3.3执行rmiregistry 开启一个终端启动 rmiregistry3.4启动服务从哪里启动可能是从你的远程实现类中的main方法也可能是从一个独立的启动类4客户如何取得stub对象4.1客户必须取得stub对象代理以调用其中的方法所以我们就需要 RMI Registry的帮忙。4.2客户取得stub对象的stepsstep1客户到RMI Registry中寻找 step2RMI Registry返回stub对象step3客户调用stub的方法就像stub 就是真正的访问对象一样public class MyRemoteClient {public void go() {try {MyRemote service (MyRemote) Naming.lookup(rmi://127.0.0.1/hehe);String s service.sayHello();System.out.println(s);} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {MyRemoteClient client new MyRemoteClient();client.go();} }打印结果 Attention对于RMI coders 最常犯的三个错误A1忘了在启动远程服务前先启动 rmiregistryA2忘了让变量和返回值的类型称为可序列化的类型A3忘了给客户提供stub类 【2】将代理模式应用到糖果自动售卖机的监控系统中多线程实现监控 for download please visithttps://github.com/pacosonTang/HeadFirstDesignPattern/tree/master/chapter11_proxyPattern/chapter11_proxy 2.1创建一个远程接口 // 创建远程服务接口服务器接口 public interface CandyMachineRemote extends Remote{int getCount() throws RemoteException;String getLocation() throws RemoteException;State getState() throws RemoteException; } 2.2提供该远程接口的实现类 public class CandyMachineProxyServer {public static void main(String[] args) throws RemoteException {CandyMachine machine new CandyMachine(chengdu, 50);try {Naming.rebind(machine, machine);} catch (MalformedURLException e) {e.printStackTrace();}new Thread(new Runnable() { // 开启一个线程实现client循环投币Overridepublic void run() {System.out.println(\n\n 下面进入循环测试中奖率为20% );for (int i 0; i 5; i) {machine.insertQuarter();machine.turnCrank();System.out.println(machine);try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}}}}).start();;} } 2.3启动rmi registry 注册表服务 E:\bench-cluster\cloud-data-preprocess\designPattern\srcrmiregistry 2.4将实现类添加到 注册表服务以便client 获取它 E:\bench-cluster\cloud-data-preprocess\designPattern\srcjava com.designpattern.chapter11_proxy.CandyMachineProxyServer 2.5编写监控器程序 public class CandyMachineProxyMonitor {CandyMachineRemote remoteMachine;public CandyMachineProxyMonitor(CandyMachineRemote remoteMachine) {this.remoteMachine remoteMachine;}public void report() {int counter 0;try {while(true) {System.out.println(round (counter));System.out.println(machine.location remoteMachine.getLocation());System.out.println(machine.count remoteMachine.getCount());System.out.println(machine.state remoteMachine.getState());if(counter 5) {break;}Thread.sleep(10000);}} catch (Exception e) {e.printStackTrace();}} }2.5client 获取该远程对象之后就如一般对象那样使用clientCEO桌面监视器 pre namecode classjava//client public class CandyMachineProxyMonitorTest {public static void main(String[] args) throws RemoteException {CandyMachineRemote remoteMachine;try {remoteMachine (CandyMachineRemote) Naming.lookup(rmi://127.0.0.1/machine);CandyMachineProxyMonitor monitor new CandyMachineProxyMonitor(remoteMachine);monitor.report();} catch (MalformedURLException | NotBoundException e) {e.printStackTrace();}} } 打印结果 【3】代理模式 3.1定义代理模式为另一个对象提供了一个替身或占位符以控制对这个对象的访问 3.2使用代理模式创建代表对象让代表对象控制某对象的访问被代理的对象可以是远程对象、创建开销大的对象或 需要安全控制的对象
http://www.yutouwan.com/news/447364/

相关文章:

  • window部署wordpress网站换域名了怎么办seo
  • 网站转换模块怎么做成都好玩的地方
  • 院系网站建设网站数据库5g
  • 纯静态 网站网站建设归哪个部门
  • 寿光做网站的怎样可以提升自己的网站
  • 名人网站设计版式濮阳网站
  • 做关键词排名卖网站wordpress调用api接口
  • 学校网站维护怎么做长沙网站建设长沙
  • 自己的网站怎么做搜索引擎如何分析竞争对手的网站
  • 做公司网站的步骤销售网络平台建设
  • 地方房地产网站seo实战案例分享网页设计教程132
  • 肥西网站推广公司网站开发和移动开发
  • 上海锦都建设(集团)有限公司网站客户管理软件 crm
  • 做网站的运营维护都要学什么mysql 网站空间
  • 沈阳网站维护做购物网站需要学哪些
  • 河南专业建网站太原网页
  • 十大景观设计网站百度手机app
  • 天津微信网站开发做网站和程序员哪个好点
  • 成都网站优化平台用Off做网站
  • 网站建设的步骤图广州海珠做网站的公司
  • 怎么做网站公司宣传资料网站+做内容分发资格
  • 网站电脑速成培训班祥云平台官方网站
  • 一个网站建设需要什么亚马逊官方网站的建设
  • 专业做网站价格黄石专业网站建设推广
  • 寺庙网站素材中小企业网站用什么技术
  • 专门做国外网站电商网站建设费用预算
  • 网站制作要学哪些长沙网站搭建首选智投未来
  • 上海市建设监理协会网站查询php开源网站 网上商城
  • 宝德科技专业嘉兴网站建设镇江网友之家手机版
  • 成都网站开发制作建站宝盒免费下载