찾다
JavaJava베이스팩토리 패턴 Java 란 무엇입니까?

팩토리 패턴 Java 란 무엇입니까?

Nov 11, 2019 am 09:34 AM
java팩토리 패턴

팩토리 패턴 Java 란 무엇입니까?

팩토리 패턴 java란 무엇입니까

팩토리 패턴은 Java에서 가장 일반적으로 사용되는 디자인 패턴 중 하나입니다. 이러한 유형의 디자인 패턴은 객체를 생성하는 최적의 방법을 제공하는 생성 패턴입니다.

팩토리 패턴에서는 객체 생성 시 생성 로직을 클라이언트에 노출하지 않고, 공통 인터페이스를 사용하여 새로 생성된 객체를 가리킵니다.

간단히 말하면, 팩토리 메소드는 새로운 작업을 대체합니다. 일반 용어로 말하면, 새 객체를 생성할 때 프로그래밍할 때 팩토리 메소드를 직접 호출하면 됩니다. 이를 구현하려면 특정 팩토리 클래스를 정의하고 인스턴스를 생성하는 메서드를 정의합니다.

장점:

1. 호출자가 개체를 생성하려는 경우 해당 개체의 이름만 알면 됩니다.

2. 높은 확장성. 제품을 추가하려면 팩토리 클래스만 확장하면 됩니다.

3. 제품의 특정 구현을 보호합니다. 호출자는 제품 인터페이스에만 관심이 있습니다.

단점:

제품을 추가할 때마다 특정 클래스와 객체 구현 팩토리를 추가해야 하며, 이로 인해 시스템의 클래스 수가 두 배로 늘어나고 시스템의 복잡성도 어느 정도 증가합니다. 시스템 특정 클래스에 대한 종속성이 추가되었습니다. 이것은 좋은 일이 아닙니다.

적용 사례:

1. 자동차가 어떻게 만들어지는지, 자동차 내부의 구체적인 구현에 대해 걱정하지 않고 공장에서 직접 픽업할 수 있는 자동차가 필요합니다.

팩토리 패턴의 간단한 구현은 다음과 같습니다.

//所有车的接口  有一个共同改的方法 开车
public interface Car {
    public void drive();
}
//奥迪类  实现car接口因为奥迪车也是车 肯定可以开的嘛
public class Audi implements Car {
    public Audi(){
        System.out.println("生产出一辆奥迪");
    }
    @Override
    public void drive() {
        System.out.println("开奥迪");
    }
}
//宝马类  实现car接口因为宝马车也是车 肯定也可以开
public class Bmw implements Car{
    public Bmw(){
        System.out.println("生产出一辆宝马");
    }
    @Override
    public void drive() {
        System.out.println("开宝马");
    }
}
//生产车的工厂  该工厂接收一个车名 你只需要告诉他你要生产什么车  就可以生产出对应的车出来
public class CarFactory {
    public static Car getCar(String caename){
        if(caename.equals("audi")){
            return new Audi();
        }else if(caename.equals("bmw")){
            return new Bmw();
        }
            return null;
    }
}
//测试
public class Test {
    public static void main(String[] args) {
        //告诉工厂类 你需要生产出一辆奥迪车  那么给昂他传一个参数audi进去
        Car audi = CarFactory.getCar("audi");
        //就可以生产出奥迪的车 调用开车的方法就可以开车啦
        audi.drive();
        //宝马类似
        Car bmw = CarFactory.getCar("bmw");
        bmw.drive();
    }
}
输出:
成产出一辆奥迪
开奥迪
生产出一辆宝马
开宝马

추천 튜토리얼: java 튜토리얼

위 내용은 팩토리 패턴 Java 란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)