内网穿透在实际项目中有使用吗?,怎么使用?
还有就是在实际项目中,我们对于内网穿透是怎么定位的,如何很好的去运用,🤔求解
你想实现点对点传输文件,内网穿透是效率最高的方式
如果没有这种需求,或者对速率的要求不敏感,那服务器转发就好了呀
上述问句的代码体现为:
List<Integer> list = new ArrayList<Integer>();
Map<String,String> map = new HashMap<String,String>();
上述代码不好体现用处,我们再换一种写法:
public List getList_1(){
return new ArrayList();
}
public List getList_2(){
return new ArrayList<Integer>();
}
public Map getMap_1(){
return new HashMap();
}
public Map getMap_2(){
return new HashMap<Integer,String>();
}
======================================
public ArrayList getList_3(){
return new ArrayList<Integer>();
}
public HashMap getMap_3(){
return new HashMap<Integer,String>();
}
这是六种获取集合的方法,假如按照最下面两种去写,那么获取的对象类型永远是固定的,并且使用时只能使用一种类型。那如果现在有个需求需要更换类型,从ArrayList变成Vector ,如果是最下面两种是不是除了方法,返回值要改,使用时获取此返回值的变量类型也需要改,如果此变量作为某方法的参数,那么方法参数类型是不是也要改?
而如果是以接口类型返回的,则只需要在get方法中修改new出来的对象即可,即:
public List getList_1(){
return new Vector ();
}
剩下的都不需要改。这就是为什么我们使用集合时最好使用接口类型去接收,本质上还是使用多态思维让代码具有更好的扩展性与复用。
基本不用内网穿透,也就以前本地开发对接微信回调的时候,因为没有对外ip,需要用内网穿透,提供给微信一个可以访问的回调地址。
生产的项目中,公司都是有自己的对外ip或者域名的,所以用不到内网穿透。