"Decorator tervminta" "Ebben a példában két leszármasztatott osztályát hozzuk létre az AbstractPolicy-nek, a Policy-t és annak a dekorátorát a PolicyCap-et. A reimbursementForClaim üzenetre való válasznál látható a tervminta működése, valamint azon hogy a PolicyCap tartamazza a Policy egy példányát." Object subclass: #AbstractPolicy instanceVariables: '' classVariables: '' poolVariables: '' AbstractPolicy>>reimbursementForClaim: aClaim "Calculate and return how much money the policy will pay for aClaim." ^self subclassResponsibility AbstractPolicy subclass: #Policy instanceVariables: '' "reimbursement variables" classVariables: '' poolVariables: '' Policy>>reimbursementForClaim: aClaim "See superimplementor." "... code to calculate the reimbursement ..." AbstractPolicy subclass: #PolicyCap instanceVariables: 'policy capAmount' classVariables: '' poolVariables: '' PolicyCap>>reimbursementForClaim: aClaim "See superimplementor." | uncappedAmount cappedAmount | uncappedAmount := self policy reimbursementForClaim: aClaim. cappedAmount := uncappedAmount min: self capAmount. ^cappedAmount