초 설계 모드 - 공장 모드
추상 적 인 인터페이스, 여러 개의 추상 적 인 인터페이스의 실현 류, 한 공장 류 는 추상 적 인 인 인 터 페 이 스 를 예화 하 는 데 사용 된다.
//
abstract class Car {
public void run();
public void stop();
}
//
class Benz implements Car {
public void run() {
System.out.println("Benz 。。。。。");
}
public void stop() {
System.out.println("Benz 。。。。。");
}
}
class Ford implements Car {
public void run() {
System.out.println("Ford 。。。");
}
public void stop() {
System.out.println("Ford 。。。。");
}
}
//
class Factory {
public static Car getCarInstance(String type) {
Car c = null;
if ("Benz".equals(type)) {
c = new Benz();
}
if ("Ford".equals(type)) {
c = new Ford();
}
return c;
}
}
public class Test {
public static void main(String[] args) {
Car c = Factory.getCarInstance("Benz");
if (c != null) {
c.run();
c.stop();
} else {
System.out.println(" 。。。");
}
}
}
공장 방법 모델
네 가지 역할 이 있 는데 추상 적 인 공장 모델, 구체 적 인 공장 모델, 추상 적 인 제품 모델, 구체 적 인 제품 모델 이 있다.더 이상 한 공장 류 에서 구체 적 인 제품 을 예화 하 는 것 이 아니 라 추상 적 인 공장 의 하위 류 에서 제품 을 예화 하 는 것 이다.
//
public interface Moveable {
void run();
}
//
public class Plane implements Moveable {
@Override
public void run() {
System.out.println("plane....");
}
}
public class Broom implements Moveable {
@Override
public void run() {
System.out.println("broom.....");
}
}
//
public abstract class VehicleFactory {
abstract Moveable create();
}
//
public class PlaneFactory extends VehicleFactory {
public Moveable create() {
return new Plane();
}
}
public class BroomFactory extends VehicleFactory {
public Moveable create() {
return new Broom();
}
}
//
public class Test {
public static void main(String[] args) {
VehicleFactory factory = new BroomFactory();
Moveable m = factory.create();
m.run();
}
}
추상 공장 모드
공장 방법 모델 과 달리 공장 방법 모델 중의 공장 은 단일 한 제품 만 생산 하고 추상 적 인 공장 모델 중의 공장 은 여러 제품 을 생산 한다.
/
public abstract class AbstractFactory {
public abstract Vehicle createVehicle();
public abstract Weapon createWeapon();
public abstract Food createFood();
}
// , Food,Vehicle,Weapon ,
public class DefaultFactory extends AbstractFactory{
@Override
public Food createFood() {
return new Apple();
}
@Override
public Vehicle createVehicle() {
return new Car();
}
@Override
public Weapon createWeapon() {
return new AK47();
}
}
//
public class Test {
public static void main(String[] args) {
AbstractFactory f = new DefaultFactory();
Vehicle v = f.createVehicle();
v.run();
Weapon w = f.createWeapon();
w.shoot();
Food a = f.createFood();
a.printName();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.