디자인 모델 의 간단 한 공장 모델 에 반사

단순 공장 가 반 사 는 OCP 원칙 의 좋 은 구현 이다.인터넷 에는 이미 많은 예 가 있 지만 이런 물건 은 자신 이 하나의 예 를 생각해 내야 만 자신의 것 이 라 고 할 수 있다.
       아래 코드 중 하 나 는 다섯 가지 종류 입 니 다.
        TestSimple Factory 는 테스트 용 구동 입 니 다.                                                            
        IAnimal 은 동물 류 의 걷 기 go 방법 을 설명 하 는 인터페이스 이다.
       Chicken 은 IAnimal 인 터 페 이 스 를 실현 하여 병아리, Chicken 은 go 를 실현 했다.치킨 런 을 간단하게 출력 할 뿐 입 니 다.병아리 의 걷 는 방식 은 달 리 는 것 이다.
        Duck 도 IAnimal 인 터 페 이 스 를 실현 해 오리 새끼, Duck 은 go 를 실현 했다.간단 한 출력 Duck 입 니 다.새끼 오리 의 걷 는 방식 은 수영 이다.
        Animal Factory 는 병아리 나 오 리 를 생산 하 는 간단 한 공장 이다.
       TestSimpleFactory.java

public class TestSimpleFactory {      

      public   static   void  main(String[] args) {  
  1.     PropertyReader reader=new PropertyReader("factory.properties");  
  2.     String type=reader.getProperty("factory");  
  3.     IAnimal animal=AnimalFactory.createAnimal(type);  
  4.     animal.go();  
  5.   }  
  6.      
  7. }  

 IAnimal.java

  
  
  
  
  1. public interface IAnimal {  
  2.    void go();  

Chicken.java

  
  
  
  
  1. public class Chicken implements IAnimal{  
  2.  
  3.     public void go() {  
  4.         System.out.println("Chicken Run");  
  5.     }  
  6.    

Duck.java

  
  
  
  
  1. public class Duck implements IAnimal {  
  2.  
  3.     public void go() {  
  4.       System.out.println("Duck Swim");  
  5.     }  
  6.  

AnimalFactory.java 

  
  
  
  
  1. public class AnimalFactory {  
  2.      
  3.     public static IAnimal createAnimal(String name)  
  4.        {  
  5.            try {  
  6.             Class c=Class.forName(name);  
  7.             return (IAnimal)c.newInstance();  
  8.         } catch (ClassNotFoundException e) {  
  9.             System.out.println("This class doesn't exsist!");  
  10.             e.printStackTrace();  
  11.         } catch (InstantiationException e) {  
  12.             System.out.println("This class can't be instantiated!");  
  13.             e.printStackTrace();  
  14.         } catch (IllegalAccessException e) {  
  15.             e.printStackTrace();  
  16.         }  
  17.            return null;  
  18.        }  
  19. }  

그 중에서 구체 적 으로 만 들 대상 은 factory. properties 에서 방지 합 니 다.
동물 의 자 류 를 예화 할 때 반 사 를 썼 다.
factory. properties 의 내용 은:

  
  
  
  
  1. factory=neu.swc.tzy.Car 

속성 파일 읽 기 방법:http://snowteng17.blog.51cto.com/1532294/330459

좋은 웹페이지 즐겨찾기