열기 및 원리 개방 - 폐쇄 원칙을 폐쇄

개방과 폐쇄의 원리를 소개 :

1) 폐쇄 원칙 (개방 - 폐쇄 원칙) 가장 기본적이고 중요한 설계 원칙 프로그래밍
같은 클래스, 모듈 및 기능과 같은 2) 소프트웨어 엔티티 것은 공급자에 대한 확장 ()에 대해 열려 있어야, 소비자에게 (수정 휴관) . 확장 세부 구현 건물에 대 한 추상 프레임 워크.
소프트웨어가 변경해야 할 때 3) 소프트웨어 엔터티를 확장하여 행동 변화를 달성하기보다는 기존 코드를 수정하여 변화를 달성하려고.
4) 프로그래밍 원리와 디자인 패턴 객체 기타에 따라 개폐의 원리를 따르는 것입니다.


 

  

오류의 예

패키지 com.kittenplus.principle.ocp; 

    공용  클래스 OCP {
         공공  정적  무효 메인 (문자열 []에 args) { 
            GraphicEditor GE = 새로운 새 GraphicEditor (); 
            ge.drawShape ( 새로운 새로운 사각형 ()); 
            ge.drawCircle ( 새로운 새로운 원 () ); 
        }} 
        
    // 이 클래스에 대한 도면이다 
        클래스 GraphicEditor {
     // 수신 Shape 객체 다음 유형에 따라 다른 패턴을 그리 
        공개  무효화 drawShape (형상 S) {
         IF 1 (s.m_type를 ==. ) 
        drawRectangle (S ) 
        다른  IF(s.m_type == 2 ) 
        drawCircle (S); 
        } 
        공공  공극 drawRectangle (R 형상) { 
        에서 System.out.println ( "绘制矩形' );}
         공공  공극 drawCircle (R 형상) { 
        에서 System.out.println ( "绘制圆形" ); 
        }} 
    // 모양类基类
        클래스 모양 {
         INT m_type; 
        } 
        클래스 직사각형 연장 형상 { 
        직사각형 () { 
        슈퍼 .m_type = 1 ; 
        }} 
        클래스 원은 확장 모양을 {
        원 () { 
        슈퍼 .m_type = 2 ; 
        } 
}

 

 

 

패키지 com.kittenplus.principle.ocp; 

    공용  클래스 OCP {
         공공  정적  무효 메인 (문자열 []에 args) { 
            GraphicEditor GE = 새로운 새 GraphicEditor (); 
            ge.drawShape ( 새로운 새로운 사각형 ()); 
            ge.drawShape ( 새로운 새로운 원 () ) 
            ge.drawShape ( 새로운 새 트라이앵글 ()); 
            ge.drawShape ( 새로운 새 OtherGraphic ()); 
        }} 
        
    // 이 클래스에 대한 도면이다 
        클래스 GraphicEditor {
     // 수신 Shape 객체 다음 형태에 따라 다른 패턴을 그리 
        공공  무효drawShape (모양의) { 
            s.draw (); 
        } 

    } 
    // 모양类基类
        추상  클래스 모양 {
         INT m_type;
        공개  추상  무효 추첨 (); // 抽象方法
        } 
        
        클래스 직사각형 연장 형상 { 
        직사각형 () { 
        슈퍼 .m_type = 1 ; 
        } 
        @Override 
        공공  무효 추첨 () { 
        에서 System.out.println ( "绘制矩形" );    
        } 
    } 
        클래스연장 형상 { 
        원 () { 
        슈퍼 .m_type = 2 ; 
        } 
        @Override 
        공공  무효 추첨 () { 
        에서 System.out.println ( "绘制圆形" ); 
        } 
    } 
        클래스 삼각형 연장 형상 { 
            트라이앵글 () { 
                슈퍼 .m_type = 3 ; 
            } 
            @Override 
            공공  무효 추첨 () { 
            에서 System.out.println ( "绘制三角形" );    
            } 
    } 
        클래스 OtherGraphic는 확장{셰이프 
            OtherGraphic () { 
                슈퍼 .m_type = 4. ; 
            } 
            @Override 
            공개  공극 드로우 () { 
            에서 System.out.println ( "기타 그래픽 드로잉 ' );     
            } 
    }
        
        
    

 

추천

출처www.cnblogs.com/thinkAboutMore/p/12407369.html