객체 지향 프로그래밍 프로그래밍에서 가장 일반적인 작업은 새로운 객체이지만 새로운 객체를 만드는 과정에서는 새로운 객체 생성 구현 세부 사항에주의를 기울여야하는데, 필요한 매개 변수를 초기화하는 등의 구현 세부 사항에주의를 기울여야하는 것과 같은 몇 가지 문제가있을 것입니다.이를 통해 프로그램 논리 구현보다는 객체 생성에 더 집중할 수 있습니다. 공장 패턴과 추상 공장 패턴의 출현은이 문제를 완벽하게 해결하여 더 이상 물체 생성에 관심을 가지지 않지만 비즈니스 구현에 더 집중할 수 있습니다.
특징:
1. 프로그래머는 공장 방법을 통해 직접 객체를 생성하고 더 이상 개체 생성의 세부 사항에주의를 기울이지 않습니다.
2. 객체의 구현 세부 사항을 숨기는 것도 프로그램의 보안에 도움이됩니다.
3. 프로그램 커플 링 정도를 줄입니다.
엔터프라이즈 수준 개발 및 공통 프레임 워크의 응용 프로그램 :
최대 절전 모드에서 SessionFactory 등
공장 모델 분류 :
프로그램 개발에서 가장 일반적으로 사용되는 형태 인 간단한 공장 모델 인 특정 코드는 다음과 같습니다.
공개 클래스 데모 { /*** 데모 클래스는 일반적인 운영 클래스입니다. 이 클래스에서는 자동차 제작의 구현 세부 사항에 대해 신경 쓰지 않아도*/ public static void main (String [] args) {Car Car = Carfactory.createcar ( "DZ"); car.run (); CAR CAR2 = CARFACTORY.CREATECAR ( "at"); car2.run (); }} 인터페이스 카 {public void Run ();} 클래스 DZ 구현 자동차 {public void Run () {System.out.println ( "Volkswagen is Running"); }} implements car {public void run () {System.out.println ( "Alto Car is Running"); }} Class Carfactory {public static car createcar (문자열 유형) {if ( "dz".equals (type)) {System.out.println ( "Volkswagen Car 만들기"); 새로운 DZ ()를 반환합니다. } if ( "at".equals (type)) {System.out.println ( "알토 자동차 생성"); 새로 반환 (); } return null; }}공장 메서드 모드는 단순 공장 모드보다 확장하기가 더 쉽고 이전 코드를 수정할 필요가 없습니다.
공개 클래스 데모 { /*** 데모 클래스는 일반적인 운영 클래스입니다. 이 클래스에서는 자동차 생성의 구현 세부 사항을 신경 쓰지 않아도*/ public static void main (String [] args) {atfactory atfactory = new Atfactory (); dzfactory dzfactory = new dzfactory (); 자동차 at = atfactory.createcar (); 자동차 dz = dzfactory.createcar (); at.run (); dz.run (); }} 인터페이스 카 {public void Run ();} 클래스 DZ 구현 자동차 {public void Run () {System.out.println ( "Volkswagen is Running"); }} implements car {public void run () {system.out.println ( "자동 자동차가 실행 중"); }} interface carfactory {car createcar ();} class dzfactory emplements carfactory {public car createcar () {return new dz (); }} class atfactory emplements carfactory {public car createcar () {return new at (); }}추상 공장 방법 패턴 :
공개 클래스 데모 {public static void main (String [] args) {Car CarFactory = new GdCarfactory (); fdz fdz = carfactory.createfdz (); fdz.zhuansu (); }} interface fdz {void zhuansu ();} class gdfdz는 fdz {public void zhuansu () {system.out.println ( "고급 엔진 속도"); }} class ddfdz는 fdz {public void zhuansu () {System.out.println ( "로우 엔드 엔진 속도 느린")을 구현합니다. }} interface zy {void shushidu ();} class gdzy emplements zy {public void shushidu () {System.out.println ( "고급 시트는 편안하다"); }} 클래스 ddzy 구현 zy {public void shushidu () {system.out.println ( "저급 시트는 불편하다"); }} interface lt {void mosundu ();} class gdlt implements lt {public void mosundu () {System.out.println ( "고급 타이어가 마모되지"); }} 클래스 ddlt는 lt {public void mosundu () {System.out.println ( "저급 타이어가 빠르게 마모")을 구현합니다. }} 인터페이스 카 {fdz createfdz (); zy createzy (); lt createlt ();} class gdcarfactory 구현 자동차 {@override public fdz createfdz () {return new gdfdz (); } @override public zy createzy () {return new gdzy (); } @override public lt createlt () {return new gdlt (); }} class ddcarfactory 구현 자동차 {@override public fdz createfdz () {return new ddfdz (); } @override public zy createzy () {return new ddzy (); } @override public lt createlt () {return new ddlt (); }}세 가지 방법 비교 :
1. 간단한 공장 모드 : 간단한 공장 모드는 코드 볼륨이 적지 만 확장 성이 좋지 않은 디자인이 간단합니다. 확장 해야하는 경우 이전 코드를 수정해야합니다.
2. 공장 방법 모드 : 강력한 확장 성이지만 코드 복잡성을 증가시킵니다.
3. 초록 공장 모델 : 추상 공장 모델과 공장 모델은 다릅니다. 추상 공장 모델은 제품을 등급으로 나누지 만 공장 모델은 제품을 분류하는 것입니다. 자동차의 예를 제시하기 위해 : 공장 모델은 Audi 및 Volkswagen과 같은 다양한 유형의 자동차를 생산하는 반면, 추상 공장 모델은 동일한 자동차를 등급으로 나눕니다. 예를 들어, 폭스 바겐은 모두 고급 자동차와 저가형 자동차를 나눕니다. 방법 론적 관점에서, 추상 공장 패턴은 공장 패턴의 개선과 비슷합니다. 하나는 다른 제품을 대상으로하고 다른 하나는 동일한 제품 패밀리를 목표로합니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.