精华内容
下载资源
问答
  • 展开全部划分方62616964757a686964616fe58685e5aeb931333431356637法有以下5:1、总代理:又称全权代理,是在市场上作为被代理人全权代表的代理商。这种代理商有权处理本人日常业务或专业活动中随时发生的事务,也...

    展开全部

    划分方62616964757a686964616fe58685e5aeb931333431356637法有以下5种:

    1、总代理:又称全权代理,是在市场上作为被代理人全权代表的代理商。这种代理商有权处理本人日常业务或专业活动中随时发生的事务,也有权以委托人的名义从事一般性活动。

    2、独家代理:是一种狭义代理人概念,指通过协议规定代理人在特定地区、特定时期内享有代理销售某种商品的专营权。其业务限于商业活动,具有垄断性。

    3、一般代理商:指在同一地区、同一时期内,委托人可以选定一家或几家代理商作为一般代理人,根据销售业绩支付规定的佣金和补偿费用。

    4、单一商号代理商:指仅为一个单一的企业主从事代理活动的代理商,其经营效益首先取决于企业主提供的业务情况,对企业主有很大的依赖性。

    5、区域代理商:指在一定区域或一定的消费集团内从事的代理活动。此种不排除企业主自己在该地区内缔结交易或由第三人促成交易的可能性与合法性,但即使未参与,对于与企业关系规定的应由他代理的区域或消费集团成员所缔结的交易,同样享有佣金请求权。

    扩展资料:

    由委托人与代理人签订代理协议,授权代理人在一定范围内代表他向第三者进行商品买卖或处理有关事务。代理人在委托人授权范围所作的行为所产生的权利和义务,直接对委托人发生效力,即代理人是在授权范围内以委托人的名义行事。

    代理双方属于一种委托和被委托的代销关系,而不是买卖关系。代理商在代理业务中,只是代表委托人招揽客户,招揽订单,签订合同,处理委托人的货物,收受货款等并从中赚取佣金,代理商不必动用自有资金购买商品,不负盈亏。

    代理双方通过签订代理协议建立起代理关系后,代理商有积极推销商品的义务,并享有收取佣金的权利,同时代理协议一般规定有非竞争条款,即在协议有效期内,代理人不能购买、提供与委托人的商品相竞争的商品或为该商品组织广告;代理人也无权代表协议地区内的其它相竞争的公司。

    展开全文
  • 通常我运用一下类爬虫:&:分布式爬虫:Nutch&:JAVA爬虫:Crawler4j、WebMagic、WebCollector&:非JAVA爬虫:scrapy(基于Python语言开发)一:分布式爬虫爬虫使用分布式,主要是解决两个问题:1. 海量...

    通常我运用一下几类爬虫:

    &:分布式爬虫:Nutch

    &:JAVA爬虫:Crawler4j、WebMagic、WebCollector

    &:非JAVA爬虫:scrapy(基于Python语言开发)

    一:分布式爬虫

    爬虫使用分布式,主要是解决两个问题:

    1. 海量URL管理

    2. 网速

    现在比较流行的分布式爬虫,是Apache的Nutch。但是对于大多数用户来说,Nutch是这几类爬虫里,最不好的选择,理由如下:

    1.2.1. Nutch是为搜索引擎设计的爬虫,大多数用户是需要一个做精准数据爬取(精抽取)的爬虫。Nutch运行的一套流程里,有三分之二是为了搜索引擎而设计的。对精抽取没有太大的意义。也就是说,用Nutch做数据抽取,会浪费很多的时间在不必要的计算上。而且如果你试图通过对Nutch进行二次开发,来使得它适用于精抽取的业务,基本上就要破坏Nutch的框架,把Nutch改的面目全非,有修改Nutch的能力,真的不如自己重新写一个分布式爬虫框架了。

    1.2.2. Nutch依赖hadoop运行,hadoop本身会消耗很多的时间。如果集群机器数量较少,爬取速度反而不如单机爬虫快。

    1.2.3. Nutch虽然有一套插件机制,而且作为亮点宣传。可以看到一些开源的Nutch插件,提供精抽取的功能。但是开发过Nutch插件的人都知道,Nutch的插件系统有多蹩脚。利用反射的机制来加载和调用插件,使得程序的编写和调试都变得异常困难,更别说在上面开发一套复杂的精抽取系统了。而且Nutch并没有为精抽取提供相应的插件挂载点。Nutch的插件有只有五六个挂载点,而这五六个挂载点都是为了搜索引擎服务的,并没有为精抽取提供挂载点。大多数Nutch的精抽取插件,都是挂载在“页面解析”(parser)这个挂载点的,这个挂载点其实是为了解析链接(为后续爬取提供URL),以及为搜索引擎提供一些易抽取的网页信息(网页的meta信息、text文本)。

    1.2.4 . 用Nutch进行爬虫的二次开发,爬虫的编写和调试所需的时间,往往是单机爬虫所需的十倍时间不止。了解Nutch源码的学**成本很高,何况是要让一个团队的人都读懂Nutch源码。调试过程中会出现除程序本身之外的各种问题(hadoop的问题、hbase的问题)。

    1.2.5 . 很多人说Nutch2有gora,可以持久化数据到avro文件、hbase、mysql等。很多人其实理解错了,这里说的持久化数据,是指将URL信息(URL管理所需要的数据)存放到avro、hbase、mysql。并不是你要抽取的结构化数据。其实对大多数人来说,URL信息存在哪里无所谓。

    1.2.6 . Nutch2的版本目前并不适合开发。官方现在稳定的Nutch版本是nutch2.2.1,但是这个版本绑定了gora-0.3。如果想用hbase配合nutch(大多数人用nutch2就是为了用hbase),只能使用0.90版本左右的hbase,相应的就要将hadoop版本降到hadoop 0.2左右。而且nutch2的官方教程比较有误导作用,Nutch2的教程有两个,分别是Nutch1.x和Nutch2.x,这个Nutch2.x官网上写的是可以支持到hbase 0.94。但是实际上,这个Nutch2.x的意思是Nutch2.3之前、Nutch2.2.1之后的一个版本,这个版本在官方的SVN中不断更新。而且非常不稳定(一直在修改)。

    所以,如果你不是要做搜索引擎,尽量不要选择Nutch作为爬虫。有些团队就喜欢跟风,非要选择Nutch来开发精抽取的爬虫,其实是冲着Nutch的名气,当然最后的结果往往是项目延期完成。

    如果你是要做搜索引擎,Nutch1.x是一个非常好的选择。Nutch1.x和solr或者es配合,就可以构成一套非常强大的搜索引擎了。如果非要用Nutch2的话,建议等到Nutch2.3发布再看。目前的Nutch2是一个非常不稳定的版本。

    二:JAVA爬虫

    这里把JAVA爬虫单独分为一类,是因为JAVA在网络爬虫这块的生态圈是非常完善的。相关的资料也是最全的。这里可能有争议,我只是随便谈谈。

    其实开源网络爬虫(框架)的开发非常简单,难问题和复杂的问题都被以前的人解决了(比如DOM树解析和定位、字符集检测、海量URL去重),可以说是毫无技术含量。包括Nutch,其实Nutch的技术难点是开发hadoop,本身代码非常简单。网络爬虫从某种意义来说,类似遍历本机的文件,查找文件中的信息。没有任何难度可言。之所以选择开源爬虫框架,就是为了省事。比如爬虫的URL管理、线程池之类的模块,谁都能做,但是要做稳定也是需要一段时间的调试和修改的。

    对于爬虫的功能来说。用户比较关心的问题往往是:

    2.1 . 爬虫支持多线程么、爬虫能用代理么、爬虫会爬取重复数据么、爬虫能爬取JS生成的信息么?

    不支持多线程、不支持代理、不能过滤重复URL的,那都不叫开源爬虫,那叫循环执行http请求。

    能不能爬js生成的信息和爬虫本身没有太大关系。爬虫主要是负责遍历网站和下载页面。爬js生成的信息和网页信息抽取模块有关,往往需要通过模拟浏览器(htmlunit,selenium)来完成。这些模拟浏览器,往往需要耗费很多的时间来处理一个页面。所以一种策略就是,使用这些爬虫来遍历网站,遇到需要解析的页面,就将网页的相关信息提交给模拟浏览器,来完成JS生成信息的抽取。

    2.2. 爬虫可以爬取ajax信息么?

    网页上有一些异步加载的数据,爬取这些数据有两种方法:使用模拟浏览器(问题1中描述过了),或者分析ajax的http请求,自己生成ajax请求的url,获取返回的数据。如果是自己生成ajax请求,使用开源爬虫的意义在哪里?其实是要用开源爬虫的线程池和URL管理功能(比如断点爬取)。

    如果我已经可以生成我所需要的ajax请求(列表),如何用这些爬虫来对这些请求进行爬取?

    爬虫往往都是设计成广度遍历或者深度遍历的模式,去遍历静态或者动态页面。爬取ajax信息属于deep web(深网)的范畴,虽然大多数爬虫都不直接支持。但是也可以通过一些方法来完成。比如WebCollector使用广度遍历来遍历网站。爬虫的第一轮爬取就是爬取种子集合(seeds)中的所有url。简单来说,就是将生成的ajax请求作为种子,放入爬虫。用爬虫对这些种子,进行深度为1的广度遍历(默认就是广度遍历)。

    2.3 . 爬虫怎么爬取要登陆的网站?

    这些开源爬虫都支持在爬取时指定cookies,模拟登陆主要是靠cookies。至于cookies怎么获取,不是爬虫管的事情。你可以手动获取、用http请求模拟登陆或者用模拟浏览器自动登陆获取cookie。

    2.4. 爬虫怎么抽取网页的信息?

    开源爬虫一般都会集成网页抽取工具。主要支持两种规范:CSS SELECTOR和XPATH。至于哪个好,这里不评价。

    2.5 . 爬虫怎么保存网页的信息?

    有一些爬虫,自带一个模块负责持久化。比如webmagic,有一个模块叫pipeline。通过简单地配置,可以将爬虫抽取到的信息,持久化到文件、数据库等。还有一些爬虫,并没有直接给用户提供数据持久化的模块。比如crawler4j和webcollector。让用户自己在网页处理模块中添加提交数据库的操作。至于使用pipeline这种模块好不好,就和操作数据库使用ORM好不好这个问题类似,取决于你的业务。

    2.6. 爬虫被网站封了怎么办?

    爬虫被网站封了,一般用多代理(随机代理)就可以解决。但是这些开源爬虫一般没有直接支持随机代理的切换。所以用户往往都需要自己将获取的代理,放到一个全局数组中,自己写一个代理随机获取(从数组中)的代码。

    2.7. 网页可以调用爬虫么?

    爬虫的调用是在Web的服务端调用的,平时怎么用就怎么用,这些爬虫都可以使用。

    2.8. 爬虫速度怎么样?

    单机开源爬虫的速度,基本都可以讲本机的网速用到极限。爬虫的速度慢,往往是因为用户把线程数开少了、网速慢,或者在数据持久化时,和数据库的交互速度慢。而这些东西,往往都是用户的机器和二次开发的代码决定的。这些开源爬虫的速度,都很可以。

    2.9. 明明代码写对了,爬不到数据,是不是爬虫有问题,换个爬虫能解决么?

    如果代码写对了,又爬不到数据,换其他爬虫也是一样爬不到。遇到这种情况,要么是网站把你封了,要么是你爬的数据是javascript生成的。爬不到数据通过换爬虫是不能解决的。

    2.10. 哪个爬虫可以判断网站是否爬完、那个爬虫可以根据主题进行爬取?

    爬虫无法判断网站是否爬完,只能尽可能覆盖。

    至于根据主题爬取,爬虫之后把内容爬下来才知道是什么主题。所以一般都是整个爬下来,然后再去筛选内容。如果嫌爬的太泛,可以通过限制URL正则等方式,来缩小一下范围。

    2.11 . 哪个爬虫的设计模式和构架比较好?

    设计模式纯属扯淡。说软件设计模式好的,都是软件开发完,然后总结出几个设计模式。设计模式对软件开发没有指导性作用。用设计模式来设计爬虫,只会使得爬虫的设计更加臃肿。

    至于构架,开源爬虫目前主要是细节的数据结构的设计,比如爬取线程池、任务队列,这些大家都能控制好。爬虫的业务太简单,谈不上什么构架。

    所以对于JAVA开源爬虫,我觉得,随便找一个用的顺手的就可以。如果业务复杂,拿哪个爬虫来,都是要经过复杂的二次开发,才可以满足需求。

    三:非JAVA爬虫

    在非JAVA语言编写的爬虫中,有很多优秀的爬虫。这里单独提取出来作为一类,并不是针对爬虫本身的质量进行讨论,而是针对larbin、scrapy这类爬虫,对开发成本的影响。

    先说python爬虫,python可以用30行代码,完成JAVA 50行代码干的任务。python写代码的确快,但是在调试代码的阶段,python代码的调试往往会耗费远远多于编码阶段省下的时间。使用python开发,要保证程序的正确性和稳定性,就需要写更多的测试模块。当然如果爬取规模不大、爬取业务不复杂,使用scrapy这种爬虫也是蛮不错的,可以轻松完成爬取任务。

    相关文章内容简介

    1

    使用代理ip的爬虫分为几类?

    通常我运用一下几类爬虫:    &:分布式爬虫:Nutch    &:JAVA爬虫:Crawler4j、WebMagic、WebCollector    &:非JAVA爬虫:scrapy(基于Python语言开发)    一:分布式爬虫    爬虫使用分布式,主要是解决两个问题:    1. 海量URL管理    2. 网速    现在比较流行的分布式爬虫,是Apache的Nutch。但是对于大多数用户来说,Nutch是这几类爬虫里,最不好的选择,理由如下:    1.2.1. Nutch是为搜索引擎设计的爬虫,大多数用户是需要一个做精准数据爬取(精抽取)的爬虫

    [阅读全文]

    展开全文
  • JDK 自带的动态代理java.lang.reflect.Proxy:生成动态代理类和对象;java.lang.reflect.InvocationHandler(处理器接口):可以通过invoke方法实现对真实角色的代理访问。每次通过 Proxy 生成的代理类对象都要指定对应...

    JDK 自带的动态代理

    java.lang.reflect.Proxy:生成动态代理类和对象;

    java.lang.reflect.InvocationHandler(处理器接口):可以通过invoke方法实现

    对真实角色的代理访问。

    每次通过 Proxy 生成的代理类对象都要指定对应的处理器对象。

    代码:

    a) 接口:Subject.java

    **

    * @author gnehcgnaw

    * @date 2018/11/5 19:29

    */

    public interface Subject {

    public int sellBooks();

    public String speak();

    }

    b)真实对象:RealSubject.java

    /**

    * @author gnehcgnaw

    * @date 2018/11/5 18:54

    */

    public class RealSubject implements Subject{

    @Override

    public int sellBooks() {

    System.out.println("卖书");

    return 1 ;

    }

    @Override

    public String speak() {

    System.out.println("说话");

    return "张三";

    }

    }

    c)处理器对象:MyInvocationHandler.java

    import java.lang.reflect.InvocationHandler;

    import java.lang.reflect.Method;

    /**

    * 定义一个处理器

    * @author gnehcgnaw

    * @date 2018/11/5 19:26

    */

    public class MyInvocationHandler implements InvocationHandler {

    /**

    * 因为需要处理真实角色,所以要把真实角色传进来

    */

    Subject realSubject ;

    public MyInvocationHandler(Subject realSubject) {

    this.realSubject = realSubject;

    }

    /**

    *

    * @param proxy 代理类

    * @param method 正在调用的方法

    * @param args 方法的参数

    * @return

    * @throws Throwable

    */

    @Override

    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

    System.out.println("调用代理类");

    if(method.getName().equals("sellBooks")){

    int invoke = (int)method.invoke(realSubject, args);

    System.out.println("调用的是卖书的方法");

    return invoke ;

    }else {

    String string = (String) method.invoke(realSubject,args) ;

    System.out.println("调用的是说话的方法");

    return string ;

    }

    }

    }

    d)调用端:Main.java

    import java.lang.reflect.Proxy;

    /**

    * 调用类

    * @author gnehcgnaw

    * @date 2018/11/7 20:26

    */

    public class Client {

    public static void main(String[] args) {

    //真实对象

    Subject realSubject = new RealSubject();

    MyInvocationHandler myInvocationHandler = new MyInvocationHandler(realSubject);

    //代理对象

    Subject proxyClass = (Subject) Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), new Class[]{Subject.class}, myInvocationHandler);

    proxyClass.sellBooks();

    proxyClass.speak();

    }

    }

    gnehcgnaw

    gnehcgnaw

    949***604@qq.com2年前 (2018-11-13)

    展开全文
  • 主要分为两大类:静态代理和动态代理。一是运行前就存在,另一是运行后才进行创建。下面我们就java中的两种代理模式进行讲解。1.静态代理由程序员创建或者由第三方工具生成,再进行编译;在程序运行之前,代理类...

    97443af696eab5bf3a2fe3d94a8b468c.png

    说到代理,大家肯定都有接触过。毕竟当有些事务不想亲自处理时,会选择委托给别人进行解决。那么在java中也有着这样的机制,叫做代理模式。主要分为两大类:静态代理和动态代理。一种是运行前就存在,另一种是运行后才进行创建。下面我们就java中的两种代理模式进行讲解。

    1.静态代理

    由程序员创建或者由第三方工具生成,再进行编译;在程序运行之前,代理类的.class文件已经存在了。静态代理通常只代理一个类,并且要事先知道代理的是什么。public class BlogStaticProxy implements IBlogService{

    private IBlogService blogService;

    public BlogStaticProxy(IBlogService blogService) {

    this.blogService = blogService;

    }

    @Override

    public void writeBlog() {

    System.out.println("start writing...");

    blogService.writeBlog();

    System.out.println("end writing...");

    }

    }

    2.动态代理

    动态代理的代理类在程序运行前是不存在的,也就是说代理类在程序运行时才创建的代理模式成为动态代理。这种情况下,代理类并不是在Java代码中定义好的,而是在程序运行时根据我们的在Java代码中的“指示”动态生成的。public class MainClass {

    public static void main(String[] args) {

    //1、创建一个真实角色

    Singer target = new Singer();

    //2、调用Proxy.newProxyInstance方法,并构造一个InvocationHandler对象,

    //3、在对象内部重写invoke方法,同时调用method.invoke(target,args);

    //4、并在该方法的上下添加自己的代码逻辑

    //其中:target.getClass().getClassLoader():获取类加载器,用来生成代理对象;

    //   target.getClass().getInterfaces()获取接口元信息;

    ISinger iSinger = (ISinger) Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() {

    @Override

    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

    System.out.println("动态代理---向观众问好");//在真实对象的方法被调用“前”编写自己的业务逻辑

    Object returnValue = method.invoke(target,args);//此处通过反射调用真实对象对应的方法;

    System.out.println("动态代理---向观众问好");//在真实对象的方法被调用“后”编写自己的业务逻辑

    return returnValue;

    }

    });

    iSinger.sing();

    }

    }

    //测试结果

    "C:\Program Files\Java\jdk1.8.0_211\bin\java.exe" "-javaagent:C:\Program.......

    动态代理---向观众问好

    sing a song

    动态代理---向观众问好

    Process finished with exit code 0

    以上就是java代理模式的分类,学习完本篇的内容后,想必大家已经能对静态代理和动态代理有所区分。在实际使用时,可以根据需求自行选择。

    展开全文
  • 说明:模式动机 通过引入一个新的对象(如小图片和远程代理对象)来实现对真实对象的操作或者将新的对象作为真实对象的一个替身,这种实现机制即为代理模式,通过引入代理对象来间接访问一个对象,这就是代理模式的...
  • 代理通常就是一个介于寻求方和提供方之间的中介系统。其核心思想就是客户端(寻求方)没有直接和提供方(真实对象)打交道,而是通过代理对象来完成提供方...三常见的不同类型或不同应用场景下的代理:虚拟代理:...
  • 为其他对象提供一种代理以控制对这个对象的访问通俗的来讲代理模式就是我们生活中常见的中介代理模式在日常生活中很常见,比如,你去杂货店买一个插座,而不是去生产插座的工厂去买。再比如,你去访问某个网站,你并...
  • 当然,针对不同的资源,代理进行的操作不尽相同,根据前人的总结,有四常见且知名的代理模式:远程代理,即在物理上的远程资源(如服务器)在本地的代理虚拟代理,即不是真实的代理,是对一些可以不在第一时间执行...
  • 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。组成:抽象角色:通过接口或抽象...
  • 本文实例讲述了Python设计模式之代理模式。.../usr/bin/env python# -*- coding:utf-8 -*-__author__ = 'Andy'"""大话设计模式设计模式——代理模式代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对...
  • 翻墙常用的方式就是使用代理(Proxy),其基本过程如下:浏览器代理服务器服务器如果浏览器请求不到服务器,或者服务器无法响应浏览器,我们可以设定将浏览器的请求传递给代理服务器,代理服务器将请求转发给服务器。...
  • 代理模式在某些应用中,我们想要在访问某个对象之前执行一个或多个重要的操作,例如,访问敏感信息——在允许用户访问敏感信息之前,我们希望确保用户具备足够的权限。操作系统中也存在类似的情况,用户必须具有管理...
  • 代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式分为:静态代理动态代理由下面...
  • 前言学会使用一门编程语言来完成一项功能非常容易,尤其是...在前面文章中,我介绍了一比较常用的一设计模式:单例模式。其实软件设计模式有非常多,代理模式、桥接模式、适配器、享元、工厂模式等。这些设计...
  • 显然可以有如下两方式: ①、修改Server结构是个方法,即在进入server时,做一系列逻辑判断。但这显然不符合软件设计原则中的单一职责原则。 ②、使用代理,即利用代理来进行逻辑判定,若在白名单中,则允许访问,...
  • 代理模式的意图很多,比如:安全原因,远程调用等。这里主要讨论使用代理模式实现延迟加载,从而提升系统的性能和反应速度。 延迟加载的核心思想是:如果当前并没有使用这个...代理分为几种 静态代理 为每一个代理...
  • 代理模式Proxy模式是一常用的设计模式,它主要用来通过一个对象(比如B)给一个对象(比如A) 提供'代理'的方式方式访问。比如一个对象不方便直接引用,代理就在这个对象和访问者之间做了中介python的例子你先设想:一...
  • ip代理分为哪几类?今天番茄加速就跟大家介绍一下常见的几种ip代理分类。 HTTP代理 HTTP代理指的是使用代理服务器使网络用户访问外部网站。代理服务器是介于浏览器和Web服务器之间的一台服务器,是建立在超文本传输...
  • 集群分为几种,用的软件分别是什么? 补充:涉及的组件 1.1、apache 跨平台的网页服务器,主要使用它做静态资源服务器,也可以做代理服务器转发请求 1.2、ngnix 高性能的 HTTP和反向代理服务器,ngnix处理能力...
  • Neowine防复制防抄板的加密芯片是主要分为以下几种: ALPU-C : 特点:客制化独立ID ,定制的加密库, 封闭式供货,市场流通性为0, AES-128算法,IIC通信,封装SOT23-6 ALPU-FA : 特点:带有EEPROM, 客制化独立...
  • HTTP基本分为,透明代理,普通代理,高匿代理,这里所说的私密代理也可以理解为高匿代理IP。 简单介绍一下三种代理,高匿名代理,顾名思义就是隐藏自己真实的IP,它不会改变人们的请求报文,就好像是一个真正的...
  • Proxy是一结构设计模型,主要解决对象直接访问带来的问题,代理分为静态代理和动态代理(JDK代理、CGLIB代理。 静态代理:又程序创建的代理类,或者特定的工具类,在平时开发中经常用到这种代理模式,这种一般在...
  • 代理模式  代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,...按照代理的创建时期,代理类可以分为。  静态代理:由
  • Proxy是一结构设计模型,主要解决对象直接访问带来的问题,代理分为静态代理和动态代理(JDK代理、CGLIB代理。静态代理:又程序创建的代理类,或者特定的工具类,在平时开发中经常用到这种代理模式,这种一般在程序...
  • 第 7 章 代理模式

    2014-10-08 15:17:00
    一般代理分为几种: 1、远程代理,也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。 比如WebService在.Net 中的调用 2、虚拟代理,是根据需要创建开销很大的对象...
  • 代理IP根据协议分类,可分为...根据是否变化分类,可以分为动态代理IP和静态代理IP,动态代理IP经常变动,短则秒就变,长则十分钟变一次,动态代理分为短效代理和隧道代理;静态代理IP固定不变,短则一两天不.
  • Java 中几种常用设计模式

    万次阅读 多人点赞 2018-08-09 16:50:32
    Java 中一般认为有23种设计模式,当然暂时不需要所有的都会,但是其中常见的几种设计模式应该去掌握。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、...
  • 几种常用的设计模式

    千次阅读 2014-07-15 10:56:08
    设计模式(Design Patterns)  ——可复用面向对象软件的基础 ...总体来说设计模式分为三大类: ...结构型模式,共七:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 360
精华内容 144
关键字:

代理分为几种