Property |
Value |
dbo:abstract
|
- La fabrique abstraite est un patron de conception (design pattern) créationnel utilisé en génie logiciel orienté objet. Elle fournit une interface pour créer des familles d'objets liés ou inter-dépendants sans avoir à préciser au moment de leur création la classe concrète à utiliser. (fr)
- La fabrique abstraite est un patron de conception (design pattern) créationnel utilisé en génie logiciel orienté objet. Elle fournit une interface pour créer des familles d'objets liés ou inter-dépendants sans avoir à préciser au moment de leur création la classe concrète à utiliser. (fr)
|
dbo:thumbnail
| |
dbo:wikiPageExternalLink
| |
dbo:wikiPageID
| |
dbo:wikiPageLength
|
- 18373 (xsd:nonNegativeInteger)
|
dbo:wikiPageRevisionID
| |
dbo:wikiPageWikiLink
| |
prop-fr:année
| |
prop-fr:auteurs
|
- Eric Freeman, Elisabeth Freeman, Kathy Sierra et Bert Bates (fr)
- Eric Freeman, Elisabeth Freeman, Kathy Sierra et Bert Bates (fr)
|
prop-fr:contenu
|
- --
-- GUI Factory example;
--
class GUI_FACTORY_FOR_CONFIG feature
factory: GUI_FACTORY
once
inspect read_from_config_file
when 0 then
create {WIN_FACTORY} Result
else
create {OSX_FACTORY} Result
end
end
end
deferred class GUI_FACTORY feature
create_button: BUTTON
deferred end
end
class WIN_FACTORY inherit GUI_FACTORY feature
create_button: WIN_BUTTON
do
create Result
end
end
class OSX_FACTORY inherit GUI_FACTORY feature
create_button: OSX_BUTTON
do
create Result
end
end
deferred class BUTTON feature
caption: STRING
set_caption
do
caption := a_caption
end
paint
deferred end
end
class WIN_BUTTON inherit BUTTON feature
paint
do
print
end
end
class OSX_BUTTON inherit BUTTON feature
paint
do
print
end
end
class
APPLICATION
inherit
GUI_FACTORY_FOR_CONFIG
create
make
feature
make
local
button: BUTTON
do
button := factory.create_button
button.set_caption
button.paint
end
end (fr)
- /*
* GUIFactory example
*/
abstract class GUIFactory {
public static GUIFactory getFactory {
int sys = readFromConfigFile;
if {
return;
} else {
return;
}
}
public abstract Button createButton;
}
class WinFactory:GUIFactory {
public override Button createButton {
return;
}
}
class OSXFactory:GUIFactory {
public override Button createButton {
return;
}
}
abstract class Button {
public string caption;
public abstract void paint;
}
class WinButton:Button {
public override void paint {
Console.WriteLine;
}
}
class OSXButton:Button {
public override void paint {
Console.WriteLine;
}
}
class Application {
static void Main {
GUIFactory aFactory = GUIFactory.getFactory;
Button aButton = aFactory.createButton;
aButton.caption = "Play";
aButton.paint;
}
//output is
//I'm a WinButton: Play
//or
//I'm a OSXButton: Play
} (fr)
- /*
* GUIFactory Example
*/
public abstract class GUIFactory
{
public static GUIFactory getFactory
{
int sys = readFromConfigFile;
if
return;
return;
}
public abstract Button createButton;
}
class WinFactory extends GUIFactory
{
public Button createButton
{
return;
}
}
class OSXFactory extends GUIFactory
{
public Button createButton
{
return;
}
}
public abstract class Button
{
private String caption;
public String getCaption
{
return caption;
}
public void setCaption
{
this.caption = caption;
}
public abstract void paint;
}
class WinButton extends Button
{
public void paint
{
System.out.println;
}
}
class OSXButton extends Button
{
public void paint
{
System.out.println;
}
}
public class Application
{
public static void main
{
GUIFactory aFactory = GUIFactory.getFactory;
Button aButton = aFactory.createButton;
aButton.setCaption;
aButton.paint;
}
//output is
//I'm a WinButton: Play
//or
//I'm a OSXButton: Play
} (fr)
- /* exemple d'une fabrique abstraite d'éléments d'IHM en C++ */
struct Button {
virtual void paint = 0;
};
class WinButton : public Button {
void paint {
std::cout << " I'm a window button \n";
}
};
class OSXButton : public Button {
void paint {
std::cout << " I'm a OSX button \n";
}
};
struct GUIFactory {
virtual Button* createButton = 0;
};
class WinGUIFactory : public GUIFactory {
Button* createButton {
return new WinButton;
}
};
class OSXGUIFactory : public GUIFactory {
Button* createButton {
return new OSXButton;
}
};
class Application {
public:
Application{
Button * button = factory->createButton;
button->paint;
delete button;
}
};
/* application : */
int main
{
GUIFactory* factory;
#if defined
factory = new WinGUIFactory;
#elif defined
factory = new OSXGUIFactory;
#endif
Application* app = new Application ;
delete factory;
delete app;
return 0;
} (fr)
- #!/usr/bin/env python
# -*- coding: utf-8 -*-
#==============================================================================
# Exemple d'une fabrique abstraite d’élément en Python
#==============================================================================
class RaceFactory:
@staticmethod
def get_factory:
if race_type == 'automobile':
return SpeedwayFactory
elif race_type == 'hippique':
return HippodromeFactory
else:
return StadiumFactory
def create_racer:
raise NotImplementedError
class SpeedwayFactory:
def create_racer:
return Car
class HippodromeFactory:
def create_racer:
return Horse
class StadiumFactory:
def create_racer:
return Human
class Racer:
def __init__:
self._nickname = None
def start:
raise NotImplementedError
@property
def nickname:
return self._nickname
@nickname.setter
def nickname:
self._nickname = nickname
class Car:
def start:
return "Vroum vroum " % self.nickname
class Horse:
def start:
return "HiIi hIiI, cataclop " % self.nickname
class Human:
def start:
return "C'est parti ! " % self.nickname
if __name__ == '__main__':
import random
t = random.choice
a_factory = RaceFactory.get_factory
a_racer = a_factory.create_racer
a_racer.nickname = "Le Sans-Espoir"
print
# Affiche
# "Vroum vroum "
# ou
# "HiIi hIiI, cataclop "
# ou
# "C'est parti ! " (fr)
- /*
* Fabrique abstraite
*/
abstract class GUIFactory {
public static function getFactory {
$sys = readFromConfigFile;
if {
return;
} else {
return;
}
}
public abstract function createButton: Button;
}
class WinFactory extends GUIFactory {
public function createButton: Button {
return;
}
}
class OSXFactory extends GUIFactory {
public function createButton: Button {
return;
}
}
abstract class Button {
private $_caption;
public abstract function render;
public function getCaption{
return $this->_caption;
}
public function setCaption{
$this->_caption = $caption;
}
}
class WinButton extends Button {
public function render {
return "Je suis un WinButton: ".$this->getCaption;
}
}
class OSXButton extends Button {
public function render {
return "Je suis un OSXButton: ".$this->getCaption;
}
}
$aFactory = GUIFactory::getFactory;
$aButton = $aFactory->createButton;
$aButton->setCaption;
echo $aButton->render;
//Le rendu est
//Je suis un WinButton: Démarrage
//ou
//Je suis un OSXButton: Démarrage (fr)
- '
' * GUIFactory example
'
MustInherit Class GUIFactory
Public Shared Function getFactory As GUIFactory
Dim sys As Integer = readFromConfigFile
If sys = 0 Then
Return
Else
Return
End If
End Function
Public MustOverride Function createButton As Button
End Class
Class WinFactory
Inherits GUIFactory
Public Overloads Overrides Function createButton As Button
Return
End Function
End Class
Class OSXFactory
Inherits GUIFactory
Public Overloads Overrides Function createButton As Button
Return
End Function
End Class
MustInherit Class Button
Public caption As String
Public MustOverride Sub paint
End Class
Class WinButton
Inherits Button
Public Overloads Overrides Sub paint
Console.WriteLine
End Sub
End Class
Class OSXButton
Inherits Button
Public Overloads Overrides Sub paint
Console.WriteLine
End Sub
End Class
Class Application
Private Shared Sub Main
Dim aFactory As GUIFactory = GUIFactory.getFactory
Dim aButton As Button = aFactory.createButton
aButton.caption = "Play"
aButton.paint
End Sub
'output is
'I'm a WinButton: Play
'or
'I'm a OSXButton: Play
End Class (fr)
- # GUIFactory example on Perl
package GUIFactory;
sub getFactory {
shift; # skip class
my $toolkit = shift;
if {
return;
} else {
return;
}
}
package GtkFactory;
use base 'GUIFactory';
sub new {
bless;
}
sub createButton {
return;
}
package TkFactory;
use base 'GUIFactory';
sub new {
bless;
}
sub createButton {
return;
}
package Button;
sub new {
$class = shift;
my $self = {};
$self{caption} = '';
bless;
return $self;
}
package GtkButton;
use base 'Button';
sub paint {
print "I'm a GtkButton\n";
}
package TkButton;
use base 'Button';
sub paint {
print "I'm a TkButton\n";
}
package main;
my $aFactory = GUIFactory->getFactory;
my $aButton = $aFactory->createButton;
$aButton->{caption} = "Play";
$aButton->paint; (fr)
- --
-- GUI Factory example;
--
class GUI_FACTORY_FOR_CONFIG feature
factory: GUI_FACTORY
once
inspect read_from_config_file
when 0 then
create {WIN_FACTORY} Result
else
create {OSX_FACTORY} Result
end
end
end
deferred class GUI_FACTORY feature
create_button: BUTTON
deferred end
end
class WIN_FACTORY inherit GUI_FACTORY feature
create_button: WIN_BUTTON
do
create Result
end
end
class OSX_FACTORY inherit GUI_FACTORY feature
create_button: OSX_BUTTON
do
create Result
end
end
deferred class BUTTON feature
caption: STRING
set_caption
do
caption := a_caption
end
paint
deferred end
end
class WIN_BUTTON inherit BUTTON feature
paint
do
print
end
end
class OSX_BUTTON inherit BUTTON feature
paint
do
print
end
end
class
APPLICATION
inherit
GUI_FACTORY_FOR_CONFIG
create
make
feature
make
local
button: BUTTON
do
button := factory.create_button
button.set_caption
button.paint
end
end (fr)
- /*
* GUIFactory example
*/
abstract class GUIFactory {
public static GUIFactory getFactory {
int sys = readFromConfigFile;
if {
return;
} else {
return;
}
}
public abstract Button createButton;
}
class WinFactory:GUIFactory {
public override Button createButton {
return;
}
}
class OSXFactory:GUIFactory {
public override Button createButton {
return;
}
}
abstract class Button {
public string caption;
public abstract void paint;
}
class WinButton:Button {
public override void paint {
Console.WriteLine;
}
}
class OSXButton:Button {
public override void paint {
Console.WriteLine;
}
}
class Application {
static void Main {
GUIFactory aFactory = GUIFactory.getFactory;
Button aButton = aFactory.createButton;
aButton.caption = "Play";
aButton.paint;
}
//output is
//I'm a WinButton: Play
//or
//I'm a OSXButton: Play
} (fr)
- /*
* GUIFactory Example
*/
public abstract class GUIFactory
{
public static GUIFactory getFactory
{
int sys = readFromConfigFile;
if
return;
return;
}
public abstract Button createButton;
}
class WinFactory extends GUIFactory
{
public Button createButton
{
return;
}
}
class OSXFactory extends GUIFactory
{
public Button createButton
{
return;
}
}
public abstract class Button
{
private String caption;
public String getCaption
{
return caption;
}
public void setCaption
{
this.caption = caption;
}
public abstract void paint;
}
class WinButton extends Button
{
public void paint
{
System.out.println;
}
}
class OSXButton extends Button
{
public void paint
{
System.out.println;
}
}
public class Application
{
public static void main
{
GUIFactory aFactory = GUIFactory.getFactory;
Button aButton = aFactory.createButton;
aButton.setCaption;
aButton.paint;
}
//output is
//I'm a WinButton: Play
//or
//I'm a OSXButton: Play
} (fr)
- /* exemple d'une fabrique abstraite d'éléments d'IHM en C++ */
struct Button {
virtual void paint = 0;
};
class WinButton : public Button {
void paint {
std::cout << " I'm a window button \n";
}
};
class OSXButton : public Button {
void paint {
std::cout << " I'm a OSX button \n";
}
};
struct GUIFactory {
virtual Button* createButton = 0;
};
class WinGUIFactory : public GUIFactory {
Button* createButton {
return new WinButton;
}
};
class OSXGUIFactory : public GUIFactory {
Button* createButton {
return new OSXButton;
}
};
class Application {
public:
Application{
Button * button = factory->createButton;
button->paint;
delete button;
}
};
/* application : */
int main
{
GUIFactory* factory;
#if defined
factory = new WinGUIFactory;
#elif defined
factory = new OSXGUIFactory;
#endif
Application* app = new Application ;
delete factory;
delete app;
return 0;
} (fr)
- #!/usr/bin/env python
# -*- coding: utf-8 -*-
#==============================================================================
# Exemple d'une fabrique abstraite d’élément en Python
#==============================================================================
class RaceFactory:
@staticmethod
def get_factory:
if race_type == 'automobile':
return SpeedwayFactory
elif race_type == 'hippique':
return HippodromeFactory
else:
return StadiumFactory
def create_racer:
raise NotImplementedError
class SpeedwayFactory:
def create_racer:
return Car
class HippodromeFactory:
def create_racer:
return Horse
class StadiumFactory:
def create_racer:
return Human
class Racer:
def __init__:
self._nickname = None
def start:
raise NotImplementedError
@property
def nickname:
return self._nickname
@nickname.setter
def nickname:
self._nickname = nickname
class Car:
def start:
return "Vroum vroum " % self.nickname
class Horse:
def start:
return "HiIi hIiI, cataclop " % self.nickname
class Human:
def start:
return "C'est parti ! " % self.nickname
if __name__ == '__main__':
import random
t = random.choice
a_factory = RaceFactory.get_factory
a_racer = a_factory.create_racer
a_racer.nickname = "Le Sans-Espoir"
print
# Affiche
# "Vroum vroum "
# ou
# "HiIi hIiI, cataclop "
# ou
# "C'est parti ! " (fr)
- /*
* Fabrique abstraite
*/
abstract class GUIFactory {
public static function getFactory {
$sys = readFromConfigFile;
if {
return;
} else {
return;
}
}
public abstract function createButton: Button;
}
class WinFactory extends GUIFactory {
public function createButton: Button {
return;
}
}
class OSXFactory extends GUIFactory {
public function createButton: Button {
return;
}
}
abstract class Button {
private $_caption;
public abstract function render;
public function getCaption{
return $this->_caption;
}
public function setCaption{
$this->_caption = $caption;
}
}
class WinButton extends Button {
public function render {
return "Je suis un WinButton: ".$this->getCaption;
}
}
class OSXButton extends Button {
public function render {
return "Je suis un OSXButton: ".$this->getCaption;
}
}
$aFactory = GUIFactory::getFactory;
$aButton = $aFactory->createButton;
$aButton->setCaption;
echo $aButton->render;
//Le rendu est
//Je suis un WinButton: Démarrage
//ou
//Je suis un OSXButton: Démarrage (fr)
- '
' * GUIFactory example
'
MustInherit Class GUIFactory
Public Shared Function getFactory As GUIFactory
Dim sys As Integer = readFromConfigFile
If sys = 0 Then
Return
Else
Return
End If
End Function
Public MustOverride Function createButton As Button
End Class
Class WinFactory
Inherits GUIFactory
Public Overloads Overrides Function createButton As Button
Return
End Function
End Class
Class OSXFactory
Inherits GUIFactory
Public Overloads Overrides Function createButton As Button
Return
End Function
End Class
MustInherit Class Button
Public caption As String
Public MustOverride Sub paint
End Class
Class WinButton
Inherits Button
Public Overloads Overrides Sub paint
Console.WriteLine
End Sub
End Class
Class OSXButton
Inherits Button
Public Overloads Overrides Sub paint
Console.WriteLine
End Sub
End Class
Class Application
Private Shared Sub Main
Dim aFactory As GUIFactory = GUIFactory.getFactory
Dim aButton As Button = aFactory.createButton
aButton.caption = "Play"
aButton.paint
End Sub
'output is
'I'm a WinButton: Play
'or
'I'm a OSXButton: Play
End Class (fr)
- # GUIFactory example on Perl
package GUIFactory;
sub getFactory {
shift; # skip class
my $toolkit = shift;
if {
return;
} else {
return;
}
}
package GtkFactory;
use base 'GUIFactory';
sub new {
bless;
}
sub createButton {
return;
}
package TkFactory;
use base 'GUIFactory';
sub new {
bless;
}
sub createButton {
return;
}
package Button;
sub new {
$class = shift;
my $self = {};
$self{caption} = '';
bless;
return $self;
}
package GtkButton;
use base 'Button';
sub paint {
print "I'm a GtkButton\n";
}
package TkButton;
use base 'Button';
sub paint {
print "I'm a TkButton\n";
}
package main;
my $aFactory = GUIFactory->getFactory;
my $aButton = $aFactory->createButton;
$aButton->{caption} = "Play";
$aButton->paint; (fr)
|
prop-fr:isbn
| |
prop-fr:langue
| |
prop-fr:pagesTotales
| |
prop-fr:titre
|
- exemple d'une fabrique abstraite d'éléments d'IHM en Python (fr)
- Design patterns, tête la première (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en Perl (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en C++ (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en C# (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en VB.Net (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en Eiffel (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en Java (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en PHP (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en Python (fr)
- Design patterns, tête la première (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en Perl (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en C++ (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en C# (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en VB.Net (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en Eiffel (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en Java (fr)
- exemple d'une fabrique abstraite d'éléments d'IHM en PHP (fr)
|
prop-fr:wikiPageUsesTemplate
| |
dct:subject
| |
rdfs:comment
|
- La fabrique abstraite est un patron de conception (design pattern) créationnel utilisé en génie logiciel orienté objet. Elle fournit une interface pour créer des familles d'objets liés ou inter-dépendants sans avoir à préciser au moment de leur création la classe concrète à utiliser. (fr)
- La fabrique abstraite est un patron de conception (design pattern) créationnel utilisé en génie logiciel orienté objet. Elle fournit une interface pour créer des familles d'objets liés ou inter-dépendants sans avoir à préciser au moment de leur création la classe concrète à utiliser. (fr)
|
rdfs:label
|
- Abstract Factory パターン (ja)
- Abstract factory (ca)
- Abstract factory (it)
- Abstract factory pattern (en)
- Abstrakte Fabrik (de)
- Fabrique abstraite (fr)
- Fabryka abstrakcyjna (pl)
- Абстрактна фабрика (uk)
- 抽象工厂 (zh)
|
rdfs:seeAlso
| |
owl:sameAs
| |
prov:wasDerivedFrom
| |
foaf:depiction
| |
foaf:isPrimaryTopicOf
| |
is dbo:wikiPageRedirects
of | |
is dbo:wikiPageWikiLink
of | |
is oa:hasTarget
of | |
is foaf:primaryTopic
of | |