参考
简单工厂模式
package 简单工厂;
abstract class A {
}
class B extends A {
}
class C extends A {
}
class SimpleFactory {
public A createA(int status) {
switch (status) {
case 1:
return new B();
case 2:
return new C();
default:
break;
}
return null;
}
}
public class Main {
public static void main(String[] args) {
}
}
工厂模式
package 工厂模式;
abstract class A {
}
class B extends A {
}
class C extends A {
}
abstract class D {
}
class E extends D {
}
class F extends D {
}
abstract class Factory<T> {
abstract T create(int status);
}
class AFactory extends Factory<A> {
@Override
A create(int status) {
switch (status) {
case 1:
return new B();
case 2:
return new C();
default:
break;
}
return null;
}
}
class DFactory extends Factory<D> {
@Override
D create(int status) {
switch (status) {
case 1:
return new E();
case 2:
return new F();
default:
break;
}
return null;
}
}
public class Main {
public static void main(String[] args) {
}
}
抽象工厂
package 抽象工厂;
class BaseUser {
}
class MysqlUser extends BaseUser {
}
class SQLServerUser extends BaseUser {
}
class AccessUser extends BaseUser {
}
class BaseDepartment {
}
class MysqlDepartment extends BaseDepartment {
}
class SQLServerDepartment extends BaseDepartment {
}
class AccessDepartment extends BaseDepartment {
}
abstract class Factory {
public abstract void insert(BaseUser user);
public abstract void update(BaseUser user);
public abstract void delete(BaseUser user);
public abstract void insert(BaseDepartment department);
public abstract void update(BaseDepartment department);
public abstract void delete(BaseDepartment department);
}
class MysqlFactory extends Factory {
@Override
public void insert(BaseUser user) {
}
@Override
public void update(BaseUser user) {
}
@Override
public void delete(BaseUser user) {
}
@Override
public void insert(BaseDepartment department) {
}
@Override
public void update(BaseDepartment department) {
}
@Override
public void delete(BaseDepartment department) {
}
}
class SQLServerFactory extends Factory {
@Override
public void insert(BaseUser user) {
}
@Override
public void update(BaseUser user) {
}
@Override
public void delete(BaseUser user) {
}
@Override
public void insert(BaseDepartment department) {
}
@Override
public void update(BaseDepartment department) {
}
@Override
public void delete(BaseDepartment department) {
}
}
public class Main {
public static void main(String[] args) {
}
}