<commit_before>
## GLBackend design

/Creational pattern instead of inheritance based pattern/

Creational patterns become important as systems evolve to depend moreon object
composition than class inheritance. As that happens,emphasis shifts away from
hard-coding a fixed set of behaviors towarddefining a smaller set of fundamental
behaviors that can be composedinto any number of more complex ones. Thus creating
objects withparticular behaviors requires more than simply instantiating a class.

(Design Pattern: Element of Reusable Object-Oriented Software)

## Issues and goals

**Having a ligtwave datamodel**, callable by all the code sections.
Twisted based development is /callback based/ therefore you need to
have preshared some generic way, that permit 

**Have a flexible design for extensions**: Notification, Delivery, Input,
Storage Database, Storage FileSystem, Receiver retriveral need to be implemented
as an abstract factory, that dispatch modules coherently with configuration or
runtime requests.

**Have a fixed functions as helper**, functions that manage the commonly used 
datatype of GLbackend (from the REST point of view, they are pointed out in
/Data object involved/)

<commit_msg>added code pattern description<commit_after>
## GLBackend design

_Creational pattern instead of inheritance based pattern_

Creational patterns become important as systems evolve to depend moreon object
composition than class inheritance. As that happens,emphasis shifts away from
hard-coding a fixed set of behaviors towarddefining a smaller set of fundamental
behaviors that can be composedinto any number of more complex ones. Thus creating
objects withparticular behaviors requires more than simply instantiating a class.

(Design Pattern: Element of Reusable Object-Oriented Software)

## Issues and goals

**Have a ligtwave datamodel**, callable by all the code sections, this is 
a series of Storm extensions that handle ORM interaction.

**Have a flexible design for extensions**: Notification, Delivery, Input,
Storage Database, Storage FileSystem, Receiver retriveral need to be implemented
as an abstract factory, that dispatch modules coherently with configuration or
runtime requests. 
All the module use Creational pattern inside.

**Have a set of helper functions**, functions that manage the commonly used 
datatype of GLbackend. 
Are implemented in globaleaks/utils/ code, use inheritance based pattern.
{'fraction_non_alphanumeric': 0.03904644471845458, 'fraction_numerical': 0.0, 'mean_word_length': 5.456233421750663, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7621916', 'n_tokens_mistral': 571, 'n_tokens_neox': 536, 'n_words': 327}