>Java >java지도 시간 >Java 참고 사항: 생성기 사용 방법

Java 참고 사항: 생성기 사용 방법

无忌哥哥
无忌哥哥원래의
2018-07-20 11:01:572366검색

1. 머리말

이 글에서는 Generator에 대해 설명합니다. 둘 사이에는 큰 차이가 있습니다. Iterator는 컨테이너의 요소를 탐색하는 데 사용됩니다. Java 표준 라이브러리에는 Iterator 인터페이스와 해당 구현이 있지만 생성기는 객체를 생성하는 데 사용됩니다.
[참고: 여기서 제너레이터는 디자인 패턴의 제너레이터 패턴(즉, 빌더 패턴)과 구별된다는 점에 주의하세요.]

2. 소개 #🎜🎜 #

  1. Generator는 객체를 생성하는데 특별히 사용되는 클래스입니다.

  2. 실제로는 팩토리 메소드 패턴을 응용한 것이며 제네릭을 인터페이스에 적용

  3. 생성기를 사용하여 새 객체를 생성할 때 매개변수 없이 객체를 생성할 수 있습니다 —>이것이 또한 팩토리 메소드 패턴에는 일반적으로 매개변수가 필요합니다

  4. 일반적으로 생성기는 새 객체를 생성하는 데 특별히 사용되는 하나의 메소드만 정의합니다. #

    3. 생성기 인터페이스
Java 표준 라이브러리에는 생성기 인터페이스가 포함되어 있지 않으므로 생성기를 자체적으로 정의해야 합니다.

[제너레이터]

/**
 - 生成器接口
 - @author johnnie
 - @param <T>
 */
public interface Generator<T> {

    /**
     - 用以产生新对象
     - @return
     */
    public T next();

}

4. 제너레이터 사용

[예제 코드]

/**
 - Generator 的实现类
 - @author johnnie
 *
 */
public class PersonGenerator implements Generator<Person> {

    private Class[] types = new Class[]{Person.class};

    public PersonGenerator() {  }

    @Override
    public Person next() {
        try {
            // 利用反射生成 Person 对象
            return (Person) types[0].newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

        return null;
    }

    public static void main(String[] args) {
        PersonGenerator generator = new PersonGenerator();
        Person person = generator.next();
        person.setId(0);
        person.setName("johnnie");
        person.setSex("Man");
        System.out.println(person);
    }

}

[출력] # 🎜🎜#
Person [id=0, name=johnnie, sex=Man]

위 내용은 Java 참고 사항: 생성기 사용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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