Mise à niveau de la licence du site

La licence de ce site a été mise à niveau vers Creative Commons CC-BY-ND 4.0 International. La notice de copyright a été mise à jour dans les Informations légales.


Création de référentiels GitHub

Des référentiels pour les projets en cours ont été crées sous GitHub :
github.com/ordisoftware


Google Quantum Computing Playground

Un émulateur d'ordinateur quantique :
www.quantumplayground.net

 


De la Neutralité du Net

La neutralité du Net est un vaste sujet source de polémique, mais une importante avancée a été faite dans ce domaine au niveau légal car comme en France les États-Unis viennent officiellement de reconnaître Internet comme un service public neutre et les opérateurs n'ont pas le droit de discriminer, opprimer ou bloquer l'accès et le débit sans décision de justice.

Comme toute législation, ceci n'est que la partie théorique qui reste à appliquer à tous sans exception, professionnels comme particuliers et fournisseurs comme usagers.

En effet, malgré ses défauts, Internet permet de sauver des vies et c'est donc une technologie importante car elle participe à la protection des personnes et de leur santé, et donc à l'application da la Déclaration Universelle des Droits des Humains et de la Constitution, et quels que soient les mensonges qui y sont colportés, c'est un inéluctable moyen de manifestation du savoir et de la vérité.

 


Nouvelle version du site

Mise à jour de la description des services en informatique :

 


Les interfaces sont-elles un fléau ou sont-elles mal utilisées ?

There are several considerations and practices concerning interfaces

Some developers say that interfaces can be used as a replacement of multiple inheritance mechanisms, which cause complexity and ambiguity. But each feature must be implemented each time it is declared: this is not an inheritance, this is a wrapper to the description of a part of a group of classes, like IDisposable. It is the same as a multiple inheritance with one implemented class and some abstract classes: it is a particular case which allows only one way hierarchy with interfaces as abstract connectors that describes services.

Some developers say that interfaces can be used to separate the access to an object of this instance. Historically, interfaces are a COM & DCOM heritage: they are used to manipulate components services, whatever objects are, where they are, and how they are implemented. Interfaces are not a replacement to multiple inheritance, they are something else.

Recommended articles:
A plea for full multiple inheritance support in .NET
A Typed Intermediate Language for Compiling Multiple Inheritance

Lire la suite »


Les défauts d'implémentation du pattern singleton

The paradigm

Consider this common singleton pattern implementation:

public class Singleton
{
static private readonly object locker = new object();

static public Singleton Instance
{
get
{
lock ( locker )
{
if ( _Instance == null ) _Instance = new Singleton();
return _Instance;
}
}
}
static private volatile Singleton _Instance;

private Singleton() { }
}

The problem is that you can inherit this class and create a public constructor if there is no private constructor. Furthermore, static members are allowed. This is no longer a singleton at all. Setting the class as sealed can be an acceptable solution, but you must implement singleton by singleton, i.e., more than ten lines. Thus, coding a such singleton can be the source of many errors and difficulties. Thinking with factoring is not only an agile principle, it is a mathematical theorem.

Defining a generic singleton

A generic solution is to check the absence of static members and that there is only one parameterless private constructor, or an exception is thrown. Singletons that inherit this class can't be inherited and must be sealed. Moreover, the implementation of singleton types are checked at program startup. Therefore, it is not the best solution, but the only thing to do is to create one parameterless private constructor, no static members, and seal the class.

  Generic Persistent Singleton Sample

Taille : 53,4 Kio
Mise en ligne : 28 juillet 2009
Mise à jour : 8 septembre 2015
Dernier téléchargement : 25 mars 2024
Nombre de téléchargements : 562

Lire la suite »


Ouvrage en cours

Le projet Ordisoftware™ a démarré en janvier 2004.