Junior
Ներկայացրեք աբստրակտ գործարանի օգտագործման օրինակ
sobes.tech AI
Պատասխան AI-ից
Աբստրակտ ֆաբրիկա — դա ստեղծող դիզայնի օրինակ է, որը տրամադրում է ինտերֆեյս կապված օբյեկտների ընտանիքների ստեղծման համար առանց նրանց կոնկրետ դասերի նշելու:
Օրինակ C#-ում:
// Ապրանքների ինտերֆեյսներ
public interface IButton {
void Render();
}
public interface ICheckbox {
void Render();
}
// Windows-ի կոնկրետ ապրանքներ
public class WindowsButton : IButton {
public void Render() => Console.WriteLine("Windows կոճակի նկարի ցուցադրում");
}
public class WindowsCheckbox : ICheckbox {
public void Render() => Console.WriteLine("Windows նշակետային տուփի նկարի ցուցադրում");
}
// MacOS-ի կոնկրետ ապրանքներ
public class MacButton : IButton {
public void Render() => Console.WriteLine("MacOS կոճակի նկարի ցուցադրում");
}
public class MacCheckbox : ICheckbox {
public void Render() => Console.WriteLine("MacOS նշակետային տուփի նկարի ցուցադրում");
}
// Աբստրակտ ֆաբրիկա
public interface IGUIFactory {
IButton CreateButton();
ICheckbox CreateCheckbox();
}
// Կոնկրետ ֆաբրիկաներ
public class WindowsFactory : IGUIFactory {
public IButton CreateButton() => new WindowsButton();
public ICheckbox CreateCheckbox() => new WindowsCheckbox();
}
public class MacFactory : IGUIFactory {
public IButton CreateButton() => new MacButton();
public ICheckbox CreateCheckbox() => new MacCheckbox();
}
// Օգտագործում
class Application {
private IButton button;
private ICheckbox checkbox;
public Application(IGUIFactory factory) {
button = factory.CreateButton();
checkbox = factory.CreateCheckbox();
}
public void Render() {
button.Render();
checkbox.Render();
}
}
// Օգտագործող կոդում ընտրում ենք անհրաժեշտ ֆաբրիկան
IGUIFactory factory = new WindowsFactory();
Application app = new Application(factory);
app.Render();
Այս օրինակով աբստրակտ ֆաբրիկան թույլ է տալիս ստեղծել կապված օբյեկտների ընտանիքներ (կոճակներ և նշակետային տուփեր) տարբեր հարթակների համար՝ առանց կոնկրետ ապրանքների դասերի մասին իմանալու։