Java 공장 모드, 추상적인 공장 모드를 쉽게 파악
특징:
1. 프로그래머는 직접 공장 방법을 통해 대상을 만들고 창설 대상의 세부 사항에 더 이상 관심을 갖지 않는다.
2. 숨겨진 대상의 실현 세부 사항도 프로그램의 안전성에 유리하다.
3. 프로그램의 결합도를 낮춘다.
엔터프라이즈급 개발 및 공통 프레임워크에서의 응용:
Hibernate의 세션팩토리 등.
공장 모델 분류:
간단한 공장 모델, 프로그램 개발에서 가장 자주 사용하는 형식, 구체적인 코드는 다음과 같다.
public class Demo {
/**
* demo ,
*/
public static void main(String[] args) {
Car car = CarFactory.createCar("dz");
car.run();
Car car2 = CarFactory.createCar("at");
car2.run();
}
}
interface Car{
public void run();
}
class Dz implements Car{
public void run() {
System.out.println(" ");
}
}
class At implements Car{
public void run() {
System.out.println(" ");
}
}
class CarFactory{
public static Car createCar(String type){
if("dz".equals(type)){
System.out.println(" ");
return new Dz();
}
if("at".equals(type)){
System.out.println(" ");
return new At();
}
return null;
}
}
공장 방법 모델은 간단한 공장 모델에 비해 확장이 편리하여 이전의 코드를 수정할 필요가 없다
public class Demo {
/**
* demo ,
*/
public static void main(String[] args) {
AtFactory atFactory = new AtFactory();
DzFactory dzFactory = new DzFactory();
Car at = atFactory.createCar();
Car dz = dzFactory.createCar();
at.run();
dz.run();
}
}
interface Car {
public void run();
}
class Dz implements Car {
public void run() {
System.out.println(" ");
}
}
class At implements Car {
public void run() {
System.out.println(" ");
}
}
interface CarFactory {
Car createCar();
}
class DzFactory implements CarFactory {
public Car createCar() {
return new Dz();
}
}
class AtFactory implements CarFactory {
public Car createCar() {
return new At();
}
}
추상적인 공장 방법 모드:
public class Demo {
public static void main(String[] args) {
Car carFactory = new GDCarFactory();
FDZ fdz = carFactory.createFdz();
fdz.zhuansu();
}
}
interface FDZ {
void zhuansu();
}
class GDFDZ implements FDZ {
public void zhuansu() {
System.out.println(" ");
}
}
class DDFDZ implements FDZ {
public void zhuansu() {
System.out.println(" ");
}
}
interface ZY {
void shushidu();
}
class GDZY implements ZY {
public void shushidu() {
System.out.println(" ");
}
}
class DDZY implements ZY {
public void shushidu() {
System.out.println(" ");
}
}
interface LT {
void mosundu();
}
class GDLT implements LT {
public void mosundu() {
System.out.println(" ");
}
}
class DDLT implements LT {
public void mosundu() {
System.out.println(" ");
}
}
interface Car {
FDZ createFdz();
ZY createZy();
LT createLt();
}
class GDCarFactory implements Car{
@Override
public FDZ createFdz() {
return new GDFDZ();
}
@Override
public ZY createZy() {
return new GDZY();
}
@Override
public LT createLt() {
return new GDLT();
}
}
class DDCarFactory implements Car{
@Override
public FDZ createFdz() {
return new DDFDZ();
}
@Override
public ZY createZy() {
return new DDZY();
}
@Override
public LT createLt() {
return new DDLT();
}
}
세 가지 방법의 비교:1. 단순 공장 모델: 단순 공장 모델은 디자인이 간단하고 코드의 양이 적지만 확장성은 매우 떨어진다. 확장이 필요할 때 이전의 코드를 수정해야 한다
2. 공장 방법 모드: 확장성은 강하지만 코드 복잡도는 증가
3. 추상적인 공장 모델: 추상적인 공장 모델과 공장 모델은 다르다. 추상적인 공장 모델은 제품에 대해 등급을 나누지만 공장 모델은 제품에 대한 분류이다. 예를 들어 공장 모델은 서로 다른 품종의 자동차를 생산하는 것이다. 예를 들어 아우디와 폭스바겐이다. 추상적인 공장 모델은 같은 자동차에 대해 등급을 나눈다. 예를 들어 모두 폭스바겐이다. 우리는 고급차와 저급차를 나눈다.방법적으로 추상적인 공장 모델은 공장 모델의 세분화와 같다.하나는 서로 다른 제품을 겨냥한 것이고, 하나는 같은 제품 가족을 겨냥한 것이다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.