设计模式-装饰者模式
来源:互联网 发布:mendelow矩阵分析 编辑:程序博客网 时间:2024/04/27 22:22
Java的I/O各种类就是典型的装饰者模式.
以下是一个洗衣机的装饰者实现:
java代码:
package com.liu.pattern10;public class TestDecorator {public static void main(String[] args) {// TODO Auto-generated method stubWasher washer = new Washer(); WasherDecorator decorator = new ZNWahser(new GTWahser(washer));decorator.wash();}}interface IWasher{public void wash();}abstract class WasherDecorator implements IWasher{private IWasher washer;public WasherDecorator(IWasher washer){this.washer = washer;}public void wash(){washer.wash();}}class GTWahser extends WasherDecorator{public GTWahser(IWasher washer) {super(washer);// TODO Auto-generated constructor stub}public void addWater(){System.out.println("加水");}public void wash(){super.wash();addWater();}}class ZNWahser extends WasherDecorator{public ZNWahser(IWasher washer) {super(washer);// TODO Auto-generated constructor stub}public void test(){System.out.println("智能");}public void wash(){super.wash();test();}}class Washer implements IWasher{@Overridepublic void wash() {System.out.println("洗衣服");}}
c#代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace com.liu.pattern10{ class TestDecorator { static void Main(string[] args) { Washer washer = new Washer(); WasherDecorator decorator = new ZNWahser(new GTWahser(washer)); decorator.Wash(); System.Console.ReadKey(); } } interface IWasher{ void Wash(); } abstract class WasherDecorator : IWasher{ private IWasher washer; public WasherDecorator(IWasher washer){ this.washer = washer; } public virtual void Wash(){ washer.Wash(); } } class GTWahser : WasherDecorator{ public GTWahser(IWasher washer):base(washer) { } public void AddWater(){ System.Console.WriteLine("加水"); } public override void Wash(){ base.Wash(); AddWater(); } } class ZNWahser : WasherDecorator{ public ZNWahser(IWasher washer):base(washer) { } public void Test(){ System.Console.WriteLine("智能"); } public override void Wash() { base.Wash(); Test(); } }class Washer : IWasher{public void Wash() { System.Console.WriteLine("洗衣服");}}}
0 0
- 设计模式-装饰者模式
- 设计模式:装饰者模式
- 设计模式:装饰者模式
- 设计模式: 装饰者模式
- 设计模式--装饰者模式
- 设计模式-装饰者模式
- 设计模式--装饰者模式
- 设计模式-装饰者模式
- 设计模式------------装饰者模式
- 设计模式--装饰者模式
- 设计模式:装饰者模式
- 设计模式-装饰者模式
- 设计模式-装饰者模式
- 设计模式-装饰者模式
- 设计模式--装饰者模式
- 【设计模式】装饰者模式
- 设计模式---装饰者模式
- 设计模式 装饰者模式
- #leetcode# Base 7
- MVC5 Forms 认证登录
- RFC
- POJ - 3414 bfs [kuangbin带你飞]专题一
- git权威指南笔记
- 设计模式-装饰者模式
- mysql数据库开发常见问题及优化
- 解决AndroidStudio添加ProjectLibary后在编译时遇到的各种问题之解决方式索引(finished with non-zero exit value and so on...)
- vscode: Visual Studio Code 常用快捷键
- 泛型(1)——泛型的引入
- Git-相关资料
- 贪心——田忌赛马(HDU1052)
- RUP的优点
- MIME定义及参考