첫 번째 사진
현재 애플리케이션은 yaf
프레임워크를 사용하고 있으며 모든 컨트롤러는 继承
에서 파생되었습니다. 그러나 이후 기능(권한 관리, 제품 관리, 로그 관리 등)이 증가함에 따라 .), Base_controller
더 이상 부풀어오를 수 없습니다, Base_controller
에서 초기화할 수 있습니다. 하지만 각 기능은 Base_controller
과 강력하게 결합되어 있으므로 더 나은 방법이 있는지 궁금합니다. 해결책. Base_controller
, (지금 이것밖에 모르니까 젠장), 装饰模式
를 특정 데코레이션 클래스(권한 관리, 로그 관리)로 꾸며서 그러나 데코레이션 모드에서는 데코레이터(Base_controller
)와 특정 데코레이터가 모두 동일한 클래스에서 상속되어야 하므로 이제 Base_controller
는 다른 클래스에서 상속되었으므로 Base_controller
가 역할을 수행할 수 없습니다. 데코레이터, Base_controller
그럼 제가 잘못된 방향으로 가고 있는 건가요? 장식 모드가 여기에 전혀 적합하지 않은 걸까요, 아니면 다른 디자인이 필요한 걸까요?
답글 내용:
현재 애플리케이션은
프레임워크를 사용하고 있으며 모든 컨트롤러는 yaf
에서 파생되었습니다. 그러나 이후 기능(권한 관리, 제품 관리, 로그 관리 등)이 증가함에 따라 .), 继承
더 이상 부풀어오를 수 없습니다, Base_controller
Base_controller
물론 다양한 기능에 따라 다양한 클래스 파일을 만든 다음 필요에 따라
과 강력하게 결합되어 있으므로 더 나은 방법이 있는지 궁금합니다. 해결책. Base_controller
Base_controller
지금 생각하고 있는 것은
装饰模式
를 특정 데코레이션 클래스(권한 관리, 로그 관리)로 꾸며서 그러나 데코레이션 모드에서는 데코레이터(
)와 특정 데코레이터가 모두 동일한 클래스에서 상속되어야 하므로 이제 Base_controller
는 다른 클래스에서 상속되었으므로 Base_controller
가 역할을 수행할 수 없습니다. 데코레이터, Base_controller
Base_controller
그렇다면 제가 열심히 작성했던 기능적 클래스(권한관리, 제품관리, 로그관리)를 꾸미려면 누구를 써야 할까요?
그럼 제가 잘못된 방향으로 가고 있는 건가요? 장식 모드가 여기에 전혀 적합하지 않은 걸까요, 아니면 다른 디자인이 필요한 걸까요?
PHP 특성 사용
초대해주셔서 감사합니다.
위에서 언급한 특성은 실제로 해결책이지만 문제의 핵심은 여기에 없을 수도 있습니다.
장식 모드에 대한 이해가 정확하지 않더라도 큰 문제는 아니며 핵심도 아닙니다
실제 개발에서 BaseController가 부풀어오르는 문제는 겪어본 적이 없습니다. 이는 대개 개발자의 레벨(또는 영역)의 결과이며, 클래스 코드를 변경하더라도 클래스 코드를 변경하지 않는 문제일 수 없습니다. 해결되었으나 재구성이 필요합니다.
일반적으로 BaseController는 컨트롤러에서 제공해서는 안 되는 많은 메서드를 선언하여 발생합니다. 이러한 메서드는 모델에서 선언되거나 도우미에 속해야 합니다. 모델은 공유되므로 모든 컨트롤러에서 해당 메서드를 사용할 수 있습니다. 그리고 Model에서 정의해야 할 메소드가 Controller에 배치되어 있고 Controller가 공개되지 않은 경우, 이때 가장 간단한 해결책은 Base에 배치하는 것입니다.