模式bridge功能

bridge功能  时间:2021-02-23  阅读:()

模式&框架Pattern&Framework*InstituteofComputerSoftwareNanjingUniversity*摘要MoreaboutPatternFrameworkComparison*InstituteofComputerSoftwareNanjingUniversity*摘要MoreaboutPatternFrameworkComparison*InstituteofComputerSoftwareNanjingUniversity*MoreaboutPatternPatternsofPatternsAnti-patternJ2EEpatterns*InstituteofComputerSoftwareNanjingUniversity*MoreaboutPatternPatternsofPatternsAnti-patternJ2EEpatterns*InstituteofComputerSoftwareNanjingUniversity*WorkingtogetherPatternsareoftenusedtogetherandcombinedwiththesamedesignsolution.
Acompoundpatterncombinestwoormorepatternsintoasolutionthatsolvesarecurringorgeneralproblem.
*InstituteofComputerSoftwareNanjingUniversity*Example:设计一个文档编辑器设计问题文档结构格式化修饰用户界面支持多种视感(look-and-feel)标准支持多种窗口系统用户操作拼写检查和连字符*InstituteofComputerSoftwareNanjingUniversity*使用设计模式Composite表示文档的物理结构:递归组合Strategy允许不同的格式化算法Decorator修饰用户界面AbstractFactory支持多视感标准Bridge允许多个窗口平台Command支持撤销用户操作Iterator访问和遍历对象结构Visitor允许无限扩充分析能力而又不会使文档结构的实现复杂化*InstituteofComputerSoftwareNanjingUniversity*DuckExampleStartwithabunchofQuackables.
.
AgoosecamealongandwantedtoactlikeaQuakabletoo.
Then,theQuackologistsdecidedtheywantedtocountquacks.
ButtheQuackologistswereworriedthey'dforgettoaddtheQuackCounterdecorator.
Wehadmanagementproblemskeepingtrackofallthoseducksandgeeseandquackables.
TheQuackologistsalsowantedtobenotifiedwhenanyquackablequacked.
*InstituteofComputerSoftwareNanjingUniversity*AdapterDecoratorAbstractfactoryCompositeIteratorObserverCompoundPatternsMVCasongaboutMVCbyJamesDempsey(lyrics)*InstituteofComputerSoftwareNanjingUniversity*MVCMVCisacompoundpatternconsistingoftheObserver(model),Strategy(controller)andComposite(view)patterns.
TheAdapterpatterncanbeusedtoadaptanewmodeltoanexistingviewandcontroller.
*InstituteofComputerSoftwareNanjingUniversity*PatternDefinitionReviewAPatternisasolutiontoaprobleminacontext.
Context:therecurringsituationinwhichthepatternappliesProblem:thegoalyouaretryingtoachieveinthiscontextandanyconstrainsthatoccurinthecontext.
Solution:ageneraldesignthatanyonecanapplywhichresolvesthegoalandsetofconstraints*InstituteofComputerSoftwareNanjingUniversity*PatternCategoriesI--GoalCreationalPatterns:involveobjectinstantiationandallprovideawaytodecoupleaclientfromtheobjectsitneedstoinstantiate.
StructuralPatterns:composeclassesorobjectsintolargerstructures.
BehavioralPatterns:concernedwithhowclassesandobjectsinteractanddistributeresponsibility*InstituteofComputerSoftwareNanjingUniversity*PatternCategoriesII--ScopeClassPatternsDescribehowrelationshipsbetweenclassesaredefinedviainheritance.
Relationshipsinclasspatternsareestablishedatcompiletime.
*InstituteofComputerSoftwareNanjingUniversity*TemplateMethodInterpreterAdapterFactoryMethodPatternCategoriesII--ScopeObjectPatternsDescriberelationshipsbetweenobjectsandareprimarilydefinedbycomposition.
Relationshipsinobjectpatternsaretypicallycreatedatruntimeandaremoredynamicandflexible*InstituteofComputerSoftwareNanjingUniversity*CompositeDecoratorVisitorCommandIteratorMementoProxyFacadeChainofResponsibilityObserverBuilderSingletonPrototypeFlyweightStateMediatorBridgeAbstractFactoryStrategyMoreaboutPatternPatternsofPatternsAnti-patternJ2EEpatterns*InstituteofComputerSoftwareNanjingUniversity*Anti-PatternsAndrewKoenig1995,MichaelAkroyd1996Ananti-pattern(反面模式)tellsyouhowtogofromaproblemtoaBADsolution.
Tellyouwhyabadsolutionisattractive.
Tellyouwhythatsolutioninthelongtermisbad.
Suggestotherpatternsthatareapplicablewhichmayprovidegoodsolutions.
*InstituteofComputerSoftwareNanjingUniversity*Wiki反面模式分类组织结构的反面模式项目管理的反面模式团队管理的反面模式分析方式的反面模式一般设计上的反模式面向对象设计的反面模式编程上的反模式方法学上的反面模式测试反面模式配置管理反面模式*InstituteofComputerSoftwareNanjingUniversity*AnemicDomainModelBaseBeanCallsuperCircle-ellipseproblemEmptysubclassfailureGodobjectObjectcesspoolObjectorgyPoltergeistsSequentialcouplingSingletonitiesYetanotherfuckinglayerYo-yoproblemExample胖球反模式通过描述一个或几个类不断的膨胀,以至吞食掉整个面向对象架构.
一般胖球的出现是由于一个类垄断了处理过程,而其他的类只是数据的封装体.
症状和后果单个类拥有大量的属性或操作.
单个类中封装了异类的、不相关的属性和操作集.
单个控制器类和几个简单的数据对象联系在一起.
缺乏面向对象的设计,一个控制器类几乎封装了所有的应用功能.
控制器类通常过于复杂,无法复用和测试.
把这么个大类加载如内存中的代价可能会很高.

胖球反模式有两种形式:行为形式和数据形式.
*InstituteofComputerSoftwareNanjingUniversity*Example如何重构(Refactor)把一些行为重新分配到某些封装了数据的对象上,并对对象之间的关系重新调整.
确定代表契约的关系操作和属性集合,也就是把相关的属性和方法归类.
寻找这些根据契约的到了集合的"自然的家",并把它们迁移过去.
移除所有的"远耦合"或者说冗余的、间接的联系.
最后,移除所有的瞬时联系.

总之,把一个控制器类变成了一个协调器类,让开始的数据类扩充一些处理逻辑,数据类在协调类的指导下进行操作,这也只是职责的迁移.

*InstituteofComputerSoftwareNanjingUniversity*MoreaboutPatternPatternsofPatternsAnti-patternJ2EEpatterns*InstituteofComputerSoftwareNanjingUniversity*J2EEPatterns特点与平台、语言相关,描述的是J2EE平台上利用Java如何解决设计问题所解决问题的规模较大,在J2EE框架的基础上解决构件技术的选择、构件之间的协作等问题模式抽象层次较高,同时提供了若干具体实现的细节,称为策略.
注重性能的优化*InstituteofComputerSoftwareNanjingUniversity*J2EEPatternsClassification根据来源分为SJC设计模式和TheServerSide设计模式两大类J2EE:JSP,Servlet,EJB,JMS,JDBC,JNDISJC(SunJavaCenter)设计模式Web层模式:JSP,ServletInterceptingFilter,FrontController,ViewHelper…业务层模式:EJBBusinessDelegate,ValueObject,SessionFaade…集成层模式:JMS,JDBCDataAccessObject,ServiceActivator**J2EEPatternsClassificationTheServerSide设计模式EJB层体系结构模式SessionFaade,MessageFaade,EJBCommand…层间数据传输模式DataTransferObject,DataTransferHashMap…事务与持久性模式VersionNumber,JDBCforReading…客户端EJB交互模式EJBHomeFactory,BusinessDelegate*InstituteofComputerSoftwareNanjingUniversity*ExampleEJB调用是工厂模式的实现调用EJB语法:EJBHomeem=JNDIServer.
getRemoteHome(EJB-JNDI-NAME);EJBObjectmyEJB=em.
create();em.
create()类似Afactory.
create();EJBObject是接口*InstituteofComputerSoftwareNanjingUniversity*Example会话Bean和实体Bean:Faade模式一个会话Bean中调用多个实体Bean该会话Bean是一个Faade类/Manager类使用Faade会话Bean优点:提供性能,节省客户端直接调用实体Bean的网络开销解耦分层,利于扩展变化.

*InstituteofComputerSoftwareNanjingUniversity*ExampleDTO(DataTransferObject)模式DTO模式是指将数据封装成普通的JavaBeans,在J2EE多个层次之间传输.
DTO类似信使,是同步系统中的Message该JavaBeans可以是一个数据模型Model*InstituteofComputerSoftwareNanjingUniversity*ExampleMVC模式MVC模式是J2EEWeb层的主要实现*InstituteofComputerSoftwareNanjingUniversity*ExampleProxy模式代理模式可以强迫客户端对一个对象的方法调用间接通过代理类进行.
通常代理模式有以下几种:访问代理(AccessProxy)、虚拟代理和远程代理等.
动态Proxy模式动态代理利用Java的反射(Reflect)机制,可以在运行时刻将一个对象实例的方法调用分派到另外一个对象实例的调用.
动态代理模式可以在运行时刻创建继承某个接口的类型安全的代理对象,而无需在代码编译时编译这些代理类代码.

*InstituteofComputerSoftwareNanjingUniversity*J2EEAnti-Pattern无EJB不叫J2EE过度分层频繁的往返调用过度使用有状态的SessionBean过度会话万能Servlet或者万能JSP*InstituteofComputerSoftwareNanjingUniversity*Now…OODesignToolboxOOBasicsOOPrinciplesOOPatternsYourpatternshere!
*InstituteofComputerSoftwareNanjingUniversity*摘要MoreaboutPatternFramework:why,what,howComparison*InstituteofComputerSoftwareNanjingUniversity*Formsofdesign-levelreuseSharingofconsistency:programmingandscriptinglanguageSharingconcretesolutionfragments:librariesSharingcontracts:interfacesSharingindividualarchitecture:patternsSharingsubsystemarchitectures:frameworksSharingoverallstructure:systemarchitectures.
*InstituteofComputerSoftwareNanjingUniversity*Framework[GoF]:Aframeworkisasetofcooperatingclasses,someofwhichmaybeabstract,thatmakeupareusabledesignforaspecificclassofsoftware.
Asoftwareframeworkisanabstractioninwhichcommoncodeprovidinggenericfunctionalitycanbeselectivelyoverriddenorspecializedbyusercode,thusprovidingspecificfunctionality.
Frameworksareaspecialcaseofsoftwarelibrariesinthattheyarereusableabstractionsofcodewrappedinawell-definedAPI,yettheycontainsomekeydistinguishingfeaturesthatseparatethemfromnormallibraries.
*InstituteofComputerSoftwareNanjingUniversity*Framework框架,其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统.
简单说就是使用别人搭好的舞台,你来做表演.
而且,框架一般是成熟的,不断升级的软件.
框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层.

*InstituteofComputerSoftwareNanjingUniversity*Framework*InstituteofComputerSoftwareNanjingUniversity*应用程序专业领域框架一般性应用框架支持性框架作业系统应用框架FrameworkFirstcommercialapplicationframework:MacAppbyAppleComputerforMacintoshWell-knownframeworksMFCStruts,Spring,Avalon,PicoContainerHibernateJdon…*InstituteofComputerSoftwareNanjingUniversity*Framework特点Inversionofcontrol-Theoverallprogram'sflowofcontrolisnotdictatedbythecaller,butbytheframework.
Defaultbehavior-Aframeworkhasadefaultbehavior.
Thisdefaultbehaviormustactuallybesomeusefulbehaviorandnotaseriesofno-ops.
Extensibility-Aframeworkcanbeextendedbytheuserusuallybyselectiveoverridingorspecializedbyusercodeprovidingspecificfunctionality.
Non-modifiableframeworkcode-Theframeworkcode,ingeneral,isnotallowedtobemodified.
Userscanextendtheframework,butnotmodifyitscode.
*InstituteofComputerSoftwareNanjingUniversity*Howtodesignagoodframework领域驱动设计(DomainDrivenDesign)控制反转IoC(InversionofControl)or依赖注入DI(DependenceInjection)AOP(AspectOrientedProgramming)……*InstituteofComputerSoftwareNanjingUniversity*DomainDrivenDesign简称DDDhttp://domaindrivendesign.
org/Thepremiseofdomain-drivendesignistwo-fold:Formostsoftwareprojects,theprimaryfocusshouldbeonthedomainanddomainlogic;andComplexdomaindesignsshouldbebasedonamodel.
*InstituteofComputerSoftwareNanjingUniversity*DDDBackground开始有人抱怨使用Java开发Web网站系统,类似大炮轰蚊子.
"RubyonRails(RoR)是Web系统主打选择"对Java世界提出冲击和挑战.
但是使用另外一种语言有其他陷阱.
对Java世界提出:吸取DDD框架(RoR)优点,真正简化Java企业系统开发,不能打着简化反简化,不能因为IoC/AOP导致复杂化.

*InstituteofComputerSoftwareNanjingUniversity*DDDDomain-drivendesignisnotatechnologyoramethodology.
Itisawayofthinkingandasetofpriorities,aimedatacceleratingsoftwareprojectsthathavetodealwithcomplicateddomains.
*InstituteofComputerSoftwareNanjingUniversity*大师说DDD*InstituteofComputerSoftwareNanjingUniversity*DDD核心思想:面向领域模型(DomainModel)编程,尽可能减少层次之间混乱调用,化多层编码为多层配置,提供多层编码中各层的缺省实现前提:不能丧失多层结构,否则返回Delphi/VB时代;保证多层之间的松耦合.
*InstituteofComputerSoftwareNanjingUniversity*DDD特点统一语言:一个无处不在(ubiquitous)的语言,项目中所有人统一交流的语言.
减少沟通疑惑,减少传达走样.
使得软件更加适合需求.
统一领域模型:领域专家和程序员统一使用一种模型,没有数据库数据表等专业软件技术干扰.
专门的业务领域层:领域层除了业务没有其他,没有软件架构框架等等底层技术.
以模型为核心的卫星图DomainModelDomainServiceLoggingGUIPersistence坏设计之一:失血模型尽管使用MVC模式和框架,但是将大部分业务逻辑写在控制器Controller中,如Struts的Action.
甚至一个Action有几千行.
尽管使用SOA的服务,但是将大部分业务逻辑写在服务中.
在上面两种设计中,模型是只有setter/getter方法失血模型.
模型对象成了纯粹的数据包装,没有业务行为和方法.
失血模型导致软件难于拓展和维护,重新回到面向过程的编程老思路.
随着时间推移,开发效率降低.

坏设计之二:基于数据表的设计最初订单有OrderItemId,OrderId,ProductId和Qty.
后来添加MinDeliveryQty和PendingQty字段,这是和订单交货有关.
订单和订单交货是两个概念,但是我们把这些字段都混合在一个类中了.
尽管采取了OO设计,但这还是一种带有数据库设计影子的坏设计.

DDD设计:将实体的职责分离到不同限定场景.
领域设计和数据库设计不同领域不是把实体看成铁板一块,一开始就把它分解到各种场景.
下订单和订单交货交付是两个场景,它们应该有彼此独立的接口,由实体来实现.
在数据库中它们是一个,也就是说,从ER模型上看,它们是一个整体,但是从domainmodel领域模型角度看,它们是分离的.
DDDadvantage左图:跨层混乱;右图:以Model为线索有条理*InstituteofComputerSoftwareNanjingUniversity*以JdonFramework(JF)为例DomainModel是JF系统的第一个设计开发对象.
每个Model都必须有一个主键;或唯一标识.
由DomainModel延伸界面模型和持久实体.
*InstituteofComputerSoftwareNanjingUniversity*以Domain为核心http://www.
jdon.
com/jdonframework/基于JF的DDD最佳实践*InstituteofComputerSoftwareNanjingUniversity*ModelConfiguration使用配置替代传统MVC模式Controller编码:*InstituteofComputerSoftwareNanjingUniversity*IoC控制反转InversionofControlReviewDesignPrinciples:DIP(dependenceinversion)HollywoodPrinciple:Don'tcallus,we'llcallyou.
依赖注入DependenceInjection(byMartinFowler)http://www.
martinfowler.
com/articles/injection.
html*InstituteofComputerSoftwareNanjingUniversity*IoCMotivationFirstWeknewfrombasicJavatutorial,thatallobjectsshouldbecreatedfirstbeforeuse.
ThenWeknewhowtocreateobjectsbyusageoffactorypatterns.
NowWewillstudyhowtogetanobjectfromanIoCcontaineranduseitwithoutcreatingitbyourselves.
*InstituteofComputerSoftwareNanjingUniversity*abc=newABC()abc=Factory.
createInstanceOfABC()Example*InstituteofComputerSoftwareNanjingUniversity*publicclassJDBCDataManger{publicvoidaccessData(){DataSourcedataSource=newDataSource();//accessdata.
.
.
}}publicclassJDBCDataManger{publicvoidaccessData(){DataSourcedataSource=ApplciationResources.
getDataSource();//accessdata.
.
.
}}Ineithercase,theJDBCDataManagerhastofetchtheDataSourceitself!
http://today.
java.
net/pub/a/today/2004/02/10/ioc.
htmlIoCMotivation应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它.
也可以说,依赖被注入到对象中.
所以,控制反转是,关于一个对象如何获取它所依赖的对象的引用,这个责任的反转.

*InstituteofComputerSoftwareNanjingUniversity*IoCApproachIInterfaceInjection/ContextualizedDependencyLookup(Type1)componentsimplementspecificinterfacesprovidedbytheircontainersinordertobeconfigured**importorg.
apache.
avalon.
framework.
*;publicclassJDBCDataMangerimplementsServiceable{DataSourcedataSource;publicvoidservice(ServiceManagersm)throwsServiceExceptiondataSource=(DataSource)sm.
lookup("dataSource"publicvoidgetData(usedataSourceforsomething}}Therequirementtoimplementspecificinterfacescangivecodea"bloated"feel,whileatthesametimecouplingyourapplicationcodetotheunderlyingframework.
AvalonIoCApproachIISetterInjection(Type2)someexternalmetadataisusedtoresolvedependencies.
*InstituteofComputerSoftwareNanjingUniversity*publicclassJDBCDataManger{privateDataSourcedataSource;publicvoidsetDataManager(DataSourcedataSource{this.
dataSource=dataSource;}publicvoidgetData(usedataSourceforsomething}}Lookslikeanormalbean!
SpringIoCApproachIIMetadata:takestheformofanXMLconfigurationfileinSpring.
*InstituteofComputerSoftwareNanjingUniversity*com.
mydb.
jdbc.
Driverjdbc:mydb://server:port/mydbrootMetadatacanbereusedbymultiplecomponents!
IoCApproachIIdefineaninstanceofourmanagerandpassinareferencetothedatasource*InstituteofComputerSoftwareNanjingUniversity*Makeunittesteasier!
Applicationcodeisnottiedtothecontainer.
Potentialdownsides:Componentrelationshipunclear;EncapsulationbrokenIoCApproachIIIConstructorInjection(Type3)Basedontheprincipleof"GoodCitizen"Registeranobjectwiththeframework,specifytheparameterstouse(whichcaninturnbecreatedbytheframeworkitself)andthenjustrequestaninstance.
Thecomponentsbeingregisteredjusthavetoimplementaconstructor,whichcanbeusedtoinjectthedependencies.
*InstituteofComputerSoftwareNanjingUniversity*IoCApproachIIINeedaconstructor*InstituteofComputerSoftwareNanjingUniversity*publicclassJDBCDataManger{privateDataSourcedataSource;publicJDBCDataManger(DataSourcedataSource){this.
dataSource=dataSource;}publicvoidgetData(usedataSourceforsomething}}IoCApproachIII//createadatasourcebeanBasicDataSourcedataSource=newBasicDataSource();dataSource.
setDriverClassName("com.
mydb.
jdbc.
Driver");dataSource.
setUrl("jdbc:mysql://localhost:3306/mydb");dataSource.
setUsername("Bob");//createthecontainerMutablePicoContainerpico=newDefaultPicoContainer();//registercomponentswithcontainerConstantParameterdataSourceParam=newConstantParameter(dataSource);Stringkey="DataManager";Parameter[]params={dataSourceParam};//NoweachrequestforaDataManagerwillinstantiateaJDBCDataManagerobjectwithourdefined//dataSourceobjectpico.
registerComponentImplementation(key,JDBCDataManger.
class,params);*PicoContainerUseold-fashionedJavacodetoglueeverythingIoCApproachIIITogetinstancesoftheJDBCDataManagerobject,wejusthavetoreferencetheclassbyitskey:*InstituteofComputerSoftwareNanjingUniversity*JDBCDataMangerdm=(JDBCDataManger)pico.
getComponentInstance(key);Applicationcodeisindependentoftheframeworkitself;onlyaconstructorisneeded.
Potentialdownsides:usingconstructorstomaintainthedependenciescanbecomemorecomplexwhenusinginheritanceComparison*InstituteofComputerSoftwareNanjingUniversity*Type1从JNDI或ServiceManager等获得被调用者1.
EJB/J2EE2.
AvalonType2使用JavaBeans的setter方法1.
SpringFramework,2.
WebWork/XWorkType3在构造方法中实现依赖1.
PicoContainer,2.
HiveMind思考题:比较三种IoC方法的优缺点IoCTimeline*InstituteofComputerSoftwareNanjingUniversity*Springvs.
PicoContainerDifferentworkrequiredtosetupyourIoCbindingsSpringcanbeconfiguredeitherbyanXMLconfigurationfileordirectlyinJavaPicoContainerrequiresaJavabindingBotharefairly"lightweight"frameworkPicoContainerissmallerSpringisnotjustanIoCframework:italsoprovideswebapplicationandAOPframeworks,aswellassomegeneralsupportclasses*InstituteofComputerSoftwareNanjingUniversity*Aspect-OrientedProgrammingSeparationofConcernsCrosscuttingConcernsAspectsWeaving*InstituteofComputerSoftwareNanjingUniversity*Aspect-OrientedProgrammingComplexityofenterprisesoftwaresystemsJBoss4.
0正是使用AOP框架进行开发.
具体功能如下:Authentication权限Caching缓存Contextpassing内容传递Errorhandling错误处理Lazyloading懒加载Debugging调试logging,tracing,profilingandmonitoring记录跟踪优化校准Performanceoptimization性能优化Persistence持久化Resourcepooling资源池Synchronization同步Transactions事务*InstituteofComputerSoftwareNanjingUniversity*摘要MoreaboutPatternFramework:why,what,howComparison*InstituteofComputerSoftwareNanjingUniversity*Comparison不同的研究领域设计模式研究的是一个设计问题的解决方法框架是一个应用体系结构,是一种或多种设计模式和代码的混合体统一的思想设计可以被重用*InstituteofComputerSoftwareNanjingUniversity*Comparison设计模式比框架更抽象设计模式在每一次被复用时,都需要被实现框架不仅能被学习,还能被直接执行和复用设计模式是比框架更小的体系结构元素一个典型的框架往往包含了多个设计模式,反之不然框架比设计模式更加特例化框架总是针对一个特定的应用领域框架是OO系统获得最大复用的方式,较大的OO应用将会由多层彼此合作的框架组成*InstituteofComputerSoftwareNanjingUniversity*Comparison框架是软件,而设计模式是软件的知识体,提升框架的设计水平*InstituteofComputerSoftwareNanjingUniversity*MoreComparison框架vs.
应用系统框架vs.
工具箱,类库框架vs.
软件体系结构…*InstituteofComputerSoftwareNanjingUniversity*作业(本次作业不用提交)查询"容器(container)"的定义,谈谈你对"容器"的理解,思考"容器"和"框架"的关系结合实习项目,研究Spring中是怎么体现IoC的Ref对做课堂Presentation感兴趣的同学请发email给我,OO理论探索/学习心得/实践经验均可.

提速啦母鸡 E5 128G 61IP 1200元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

CloudCone(1.99美元),可以额外选择Voxility高防IP

CloudCone 商家也是比较有特点的,和我们熟悉的DO、Vultr、Linode商家均是可以随时删除机器开通的小时计费模式。这个对于有需要短租服务器的来说是比较有性价比的。但是,他们还有一个缺点就是机房比较少,不同于上面几个小时计费服务商可以有多机房可选,如果有这个多机房方案的话,应该更有特点。这次我们可以看到CloudCone闪购活动提供洛杉矶三个促销方案,低至月付1.99美元。商家也可以随...

CloudCone(12.95美元/月CN2 GT线路,KVM架构1 Gbps带宽

整理一下CloudCone商家之前推送的闪购VPS云服务器产品,数量有限,活动推出可能很快机器就售罄了,有需要美国便宜VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器提供商,国外实力大厂,自己开发的主机系统面板,CloudCone主要销售美国洛杉矶云服务器产品,优势特点是...

bridge功能为你推荐
office2016激活密钥office2016用什么软件激活或者密钥天府热线天府热线怎么老是进不去?iphone5解锁iphone5密码忘了怎么解锁bbsxpbbsxp 2008 无法创建数据库人人时光机寻时光机歌词天天酷跑刷积分教程天天酷跑积分怎么刷最快?金山杀毒怎么样金山杀毒好吗吴晓波频道买粉吴晓波频道学习卡资费?微信如何建群微信建群怎么建今日热点怎么删除今日热点怎么卸载删除 今日热点新闻彻底卸载删
过期域名 万网免费域名 smartvps flashfxp怎么用 bash漏洞 新世界电讯 天猫双十一秒杀 css样式大全 标准机柜尺寸 e蜗牛 华为网络硬盘 空间出租 亚马逊香港官网 南通服务器 国外视频网站有哪些 网页提速 我的世界服务器ip 上海联通 聚惠网 zcloud 更多