Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (579)
games submitted by our members
Games in WIP (500)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Pluggable load/save mechanism  (Read 610 times)
0 Members and 1 Guest are viewing this topic.
Offline digitprop

Junior Member





« Posted 2005-03-11 15:44:01 »

For a game with a fairly complex data structure, I want to make loading and saving pluggable, i.e. I want to have a single entry point for loading and saving to which I can pass a Serializer/Deserializer object which implements an appropriate interface.

In that way, it would be easy to switch, for example, from one file format to another.

Now, saving and loading cannot easily be designed in an abstract way, as they have to know about/have access to all the classes and their fields.

The solution I came up with is thus:

Each class implements a getSerializer(SerializerFactory sf) and getDeserializer(DeserializerFactory df) method defined in an interface. A GameStateSerializer traverses the data tree, retrieves the specific object Serializers and asks them to save the object state.

The SerializerFactory and DeserializerFactory parameters allow to pass factory objects which may be asked to provide serializers and deserializers for primitive data types.

In this way, the logic for loading and saving is isolated from the classes to be saved and loaded (similar to the Memento pattern), and the factories allow to plug in different file formats.

Does that make sense? Any better ideas? How do you do it?

M. Fischer . www.digitprop.com
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (31 views)
2014-04-15 18:08:23

BurntPizza (28 views)
2014-04-15 03:46:01

UprightPath (43 views)
2014-04-14 17:39:50

UprightPath (26 views)
2014-04-14 17:35:47

Porlus (43 views)
2014-04-14 15:48:38

tom_mai78101 (64 views)
2014-04-10 04:04:31

BurntPizza (124 views)
2014-04-08 23:06:04

tom_mai78101 (224 views)
2014-04-05 13:34:39

trollwarrior1 (190 views)
2014-04-04 12:06:45

CJLetsGame (198 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!