나는 상상할 수있는 디자인 패턴을 찾고있다. 문제를 더 잘 설명하기 위해 예제를 설명하겠습니다.매트릭스와 같은 상속 패턴
주어진 (Linux) 시스템 패키지를 일반적인 방법으로 모델링하고 싶습니다. 기본 클래스는 Package
이고 Apache2
, PHP5
등과 같은 파생 상품입니다. 이제이 클래스에는이 패키지가 설치되고 구성되도록 모든 방법이 포함되어 있습니다. 하지만이 클래스는 데비안, 우분투, 페도라, CentOS, 다른 리눅스 배포판 및 (가능한 경우) Windows와 같은 여러 운영 체제에서 사용할 수 있어야합니다.
이 클래스는 기본 클래스에서 믹스를 비롯하여 효과적인 클래스가 상속 된 상속 매트릭스로 해결할 수있는 것처럼 보입니다. 기본 패키지 클래스에서 기초 메서드 및 믹스 인을 제공하여 메서드를 확장 및/또는 추가 할 수 있습니다. 클래스/모듈/인터페이스/프로토콜을 사용하여 결국 믹싱에 사용 된 특정 시스템에 자동 설치 기능을 제공합니다.
저는 이것을 루비로 만들려고합니다. 그러나 내가 더 흥미를 느끼기 위해서는 이것을 실현하기 위해 시스템에 적용 할 수있는 일반적인 디자인 패턴이 있습니다.
또한 기존 설계 패턴이나 원하는 것을 얻기위한 조합이 있다고 확신합니다.이 문제에 대한 내 자신의 해결책을 찾지 못한 것 같습니다.
추가 보너스 (또는 대안)이 문제는 객체 지향 접근 방식 대신 기능적 관점을 사용하여 해결하는 것이 더 쉽고 어떻게 보이는지 궁금합니다.
제 의견으로는 이것이 상속이 아니라 구성에 좋은 사례입니다. – Rafa