📄 client.java
字号:
/*
* Created on 2005-5-7
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.test.pattern.create.abstractfactory;
/**
* @author Administrator
*
* 意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 适用性 一个系统要独立于它的产品的创建、组合和表示时。
* 一个系统要由多个产品系列中的一个来配置时。 当你要强调一系列相关的产品对象的设计以便进行联合使用时。
* 当你提供一个产品类库,而只想显示它们的接口而不是实现时。
*/
abstract class DPDocument {
abstract public void Dump();
}
abstract class DPWorkspace {
abstract public void Dump();
}
abstract class DPView {
abstract public void Dump();
}
abstract class DPFactory {
abstract public DPDocument CreateDocument();
abstract public DPView CreateView();
abstract public DPWorkspace CreateWorkspace();
}
abstract class DPApplication {
protected DPDocument doc;
protected DPWorkspace workspace;
protected DPView view;
public void ConstructObjects(DPFactory factory) {
// Create objects as needed
doc = factory.CreateDocument();
workspace = factory.CreateWorkspace();
view = factory.CreateView();
}
abstract public void Dump();
public void DumpState() {
if (doc != null)
doc.Dump();
if (workspace != null)
workspace.Dump();
if (view != null)
view.Dump();
}
}
// These classes could be part of an application
class MyApplication extends DPApplication {
public void Dump() {
System.out.println("MyApplication exists");
}
}
class MyDocument extends DPDocument {
public MyDocument() {
System.out.println("in MyDocument constructor");
}
public void Dump() {
System.out.println("MyDocument exists");
}
}
class MyWorkspace extends DPWorkspace {
public void Dump() {
System.out.println("MyWorkspace exists");
}
}
class MyView extends DPView {
public void Dump() {
System.out.println("MyView exists");
}
}
class MyFactory extends DPFactory {
public DPDocument CreateDocument() {
return new MyDocument();
}
public DPWorkspace CreateWorkspace() {
return new MyWorkspace();
}
public DPView CreateView() {
return new MyView();
}
}
/// <summary>
/// Summary description for Client.
/// </summary>
public class Client {
public static void main(String[] args) {
DPApplication myApplication = new MyApplication();
DPFactory factory = new MyFactory();
myApplication.ConstructObjects(factory);
myApplication.DumpState();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -