-
Notifications
You must be signed in to change notification settings - Fork 1
File Server App Architecture
Edit: http://yuml.me/edit/e58d3923
Edit: http://yuml.me/edit/32d8cc4e
Base abstract class for reading server configuration is ConfigurationReader. This class should have a method that takes Configuration object as a parameter and initializes it with configuration data. Two classes are inherited ConfigurationReader: ConfigurationFileReader that reads data from the config file and CommandLineReader that reads configuration from supplied command line parameters.
Edit: http://yuml.me/edit/9446f68c
All classes that will require access to configuration data will inherit Configurable class. That class abstract class will take Configuration instance as a constructor parameter.
Edit: http://yuml.me/edit/c6aa1c08
FileSystemModel class will implement all work with the file system and will inherit DataModel class that will provide an abstract interface for reading data. FileSystemModel class will also inherit Configurable class to be able to read configuration data.
Edit: http://yuml.me/edit/55dab632
Abstract DataView class represents objects that are able to work with DataModel instances. Generator class inherits it and extends its interface with methods for generating content based on data given by DataModel and query taken as a parameter. HTMLContentGenerator inherits Generator and implements all content generation logic. HTMLContentGenerator also inherits Configurable class to be able to read configuration data.
Edit: http://yuml.me/edit/77a65db1
FileWebServer class implements server logic: takes requests from clients and sends responses using data given by HTMLContentGenerator instance. FileWebServer also inherits Configurable class to be able to read configuration data.