I am developing a client-server application and cannot make users not use older versions of the client or even other clients, since the protocol is WebDAV.
I need them all to support with some backward compatibility, so the server side will behave differently, depending on which version of the client it is running on.
My question is how to prepare my application for this situation before running into this. Do I need to use a design template? How to create backward compatibility?
API (Facade ) , .
, API, A, B C. -. , . ( 1) A, B C. ...
, D, B C. ( 2), A, D C. -, D, B "", C - , . , . C -, . , , ...
- ( ) -, .
, , Design Patterns.
, Facades -,
MyServiceV1 { // the original interface MyServiceV2 { // the new interface
.. , , . , , -
createItem( String name, Integer value);
createItem( String name, Integer value, String justification );
, v1 , "", ? , "UNKNOWN", , , - , -. , , .
, , , chnages. , , , .
, , , .
... :
Server
ClientConnection
ServerBehaviorStrategy
Thus, all programming of specific behaviors is purely isolated in individual implementations of the interface ServerBehaviorStrategy.
Source: https://habr.com/ru/post/1787912/More articles:How to save some configuration information in a Java applet? - javaДолжен ли я использовать интеграцию Spring или Spring social для взаимодействия с Twitter и Facebook? - springKeeping browser history when changing page content using Ajax - jqueryDoes this have a link to easily identify a good or bad idea? - javascriptCreating a unique identifier using SQL - sqlWhat does “WARNING: Input Manager could not load static dictionary for: nl_NL” mean? - dictionaryhow to convert an existing asp.net mvc 3 web application to azure - asp.net-mvcMVC 3 AjaxHelper Ajax.ActionLink vs Ajax.RouteLink, Ajax.BeginForm vs AjaxBeginRouteForm - ajaxDoes Sybase ASE 12.5 support general table expressions? - common-table-expressionКак определить язык программирования для `` element - visual-studioAll Articles
` element - visual-studio