home > デザインパターン >

ForNext

Only Do What Only You Can Do

Proxy

VBScript

JScript

Perl

PHP

Python

Ruby

PowerShell

Scala

F#

C

C++

C++Builder

VC++

C#

Java

更新日 : 2010.11.25
■ MyClass
public interface MyClass {
    public String getName();
}
■ MyClassA
public class MyClassA implements MyClass {
    public String getName() {
        return "Suzuki";
    }
}
■ MyProxy
// classA の 代理人クラス
// classA と 同じインターフェースを使用
public class MyProxy implements MyClass {
    private MyClass classA;

    public MyProxy(String isReal) {
        // 本物のクラスを使用
        if (isReal.equals("1"))
            classA = new MyClassA();
    }

    public String getName() {
        // 代理人クラスを使用
        if (classA == null)
            return "dummy";

        // 本物のクラスを使用
        return classA.getName();
    }
}
■ MyMain
public class MyMain {
    public static void main(String args[]) {
        // 代理人クラスを使用しているか、
        // 本物のクラスを使用しているか、わからない
        MyClass classA = new MyProxy(args[0]);
        System.out.println(classA.getName());
    }
}
L:\>java MyMain  0
dummy

L:\>java MyMain  1
Suzuki

Objective-C

D

VB

VB.NET

Delphi

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system