장 소 이 구직 공장 방법 시리즈

5948 단어 공장 방법
공장: 창설 대상 은 단일 모드 와 마찬가지 로 창설 모드 에 속 합 니 다. 어떻게 창설 합 니까?
M: 오 랜 만 이에 요. 둘째, 요즘 또 무슨 디자인 모델 을 배 웠 어 요?나 를 찾 아와 토론 하 다.
z: 최근 에 디자인 모델 에서 Factory (정태 공장), 공장 방법 과 추상 공장 을 봤 어 요.
M: 그래, 그럼 나 너 시험 볼 거 야.우 리 는 단일 모델 에 대해 이야기 한 적 이 있 습 니 다. 당신 의 이 세 가지 디자인 모델 은 단일 모델 과 어떤 공통점 이 있 습 니까?
z: 그들 은 모두 생 성 모드 입 니 다. 말하자면 대상 을 어떻게 만 드 는 지 입 니 다.
M: 대상 을 만 드 는 방법 에 대해 서 말씀 드 리 겠 습 니 다. 자바 에서 대상 을 만 드 는 방법 이 어떤 지 아 세 요?
z: 조금 알 고 있 습 니 다. 1. new 는 2. clone 방법 을 말 할 필요 가 없습니다. clone 은 구조 함 수 를 호출 하지 않 고 직접 복사 하 는 3. 반 직렬 화 4, 반사, 최종 적 으로 구조 함 수 를 호출 하여 실현 할 수 있 습 니 다. 복습 할 수 있 습 니 다.
M;단일 모드 는 메모리 에 대상 이 하나 밖 에 없다 는 것 을 보증 하 는 것 입 니 다. 그러나 이 모드 들 은 대상 을 만 드 는 것 이 new 하나 입 니 다. 이런 일 을 하 는 것 은 얼마나 힘 든 일 입 니까? 그들 은 어떤 문 제 를 해결 하 였 습 니까?
z: 우 리 는 공장 을 설립 하고 공장 에서 대상 을 만 듭 니 다. 그러면 우 리 는 공장 이 대상 을 어떻게 만 드 는 지 알 필요 가 없습니다. 대상 의 인 터 페 이 스 를 어떻게 얻 기만 하면 됩 니 다. 대상 을 만 드 는 방식 이 변화 하면 우리 에 게 영향 을 주지 않 습 니 다. 그러면 우 리 는 구체 적 인 코드 가 아니 라 인터페이스 프로 그래 밍 을 하 는 것 이기 때문에 결합 도가 낮 아 집 니 다.
M;좋 습 니 다. 인 터 페 이 스 를 대상 으로 프로 그래 밍 을 했 습 니 다. 제 마음 에 드 는 이 야 기 를 해 보 겠 습 니 다. 정적 공장, 가장 간단 한 예 를 들 어 보 겠 습 니 다.
z: http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html 에서 지난번 에 우리 가 말 한 단일 모델 은 바로 정태 공장 이다.
public static Singleton getInstance()

{

  return new Singleton();

}


 
정적 방법 에서 new 반환 대상 을 호출 합 니 다.
그 다음으로 jdk 중의 Integer 에는 세 가지 정적 방법 이 있 는데 다음 과 같다.
 
  static Integer valueOf(int i)           Returns a Integer instance representing the specified int value. static Integer valueOf(String s)           Returns an Integer object holding the value of the specified String . static Integer valueOf(String s, int radix)           Returns an Integer object holding the value extracted from the specified String when parsed with the radix given by the second argument.
Integer 는 세 가지 정적 방법 이 있 습 니 다.  Integer i=Integer.valueof("1");
구조 함수 로 대상 을 만 드 는 것 이 아니 라 정적 방법 으로 대상 을 되 돌려 줍 니 다.
http://blog.csdn.net/zdp072/article/details/17470765
M: 간단 한 공장 방법, 공장 방법, 추상 적 인 공장 방법, 그들의 장단 점 체계 에 따라 이런 방법 을 논술 하 세 요.
z:  간단 한 공장 방법 (모든 제품 의 한 공장, 수입 치 에 따라 무엇 을 생산 하 는 지 확인한다)
 
//    
interface
car { public void run(); }

 
//    
public class     implements car

{



  public void run()

{

System.out.println("so many pople");

}



}

public class     implements car

{



  public void run() { System.out.println("       "); } }
 

, 。
public class CarFactory
{
public car getCar(String type)
{
if(type.euqlas(" "))
return new " ";
if(type.euqlas(" "))
return new ();
}


}

//

CarFactory fac=new CarFactory()
car MyCar=fac.getCar(" ");
car.run();

 
 

 
M: 간단 한 공장 에 무슨 단점 이 있 습 니까?
z: 개폐 원칙 에 부합 되 지 않 습 니 다. 솔직히 말 하면 새 차 라면 반드시 carFactory 를 수정 해 야 합 니 다.우 리 는 수요 가 바 뀔 때 종 류 를 수정 하 는 것 이 아니 라 가능 한 한 생산 류 를 확대 한다.
M: 그럼 공장 방법 은 요?이 문 제 를 해 결 했 습 니까?
z: 해결 됐어 요.공장 방법 은 구체 적 인 제품 이 고 공장 이다.위 글 에서 공장 방법 을 바 꾼 것 과 같다.
    
interface
factory { public car getCar(); }
public implements factory
{
public car getCar()
{
return new ();
}

}
//
factory fac=new ();
car myCar=fac.getCar();
car.run();

 
M: 한 제품 에 한 공장, 실제 상황 은 한 제품 족 에 한 공장 인 데 이 상황 은 어떤 모델 로 해결 합 니까?
 
 
 
 
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기