`
kinglun
  • 浏览: 41806 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

decorate

阅读更多
package decorate;

public interface People
{
public void eat();
}


package decorate;

public class Girl implements People {

public void eat() {
System.out.println("吃点小米饭!");
}

}




package decorate;

public class PeopleDecorate implements People
{
private  People people;
public PeopleDecorate(People people)
{
this.people = people;
}
public void eat()
{
this.before();//添加新功能
people.eat();
this.after();//添加新功能
}
public void before()
{
System.out.println("洗手!");
}
public void after()
{
System.out.println("洗碗,整理卫生!");
}
}



package decorate;

public class Test
{
public static void main(String[] args)
{
People g = new PeopleDecorate(new Girl());
g.eat();
}
}
/*
* 装饰模式主要是用来扩张一个类的功能的,在不修改这个类的情况下进行功能的添加
* 其实所有的设计模式基本就是为了去满足开发中一些原则,这里主要是开闭原则,面向接口
* 编程。
* 这里的girl要吃饭,如果要加上其他功能,不用模式的话就得去修改接口,在里面添加before,
* after等方法,这里就不利于维护与功能的扩展。
*
*/
分享到:
评论

相关推荐

    C#设计模式Decorate

    C#设计模式中的“装饰者(Decorate)”模式是一种结构型模式,它允许动态地给一个对象添加新的行为或职责,而不影响其它对象。装饰者模式的核心在于,它提供了向对象添加新功能而不使用继承的方法,从而避免了类爆炸...

    Python库 | decorate-0.0.13-py3-none-any.whl

    "decorate-0.0.13-py3-none-any.whl" 是一个Python库的发行包,它专注于装饰器(Decorator)这一编程概念。 装饰器在Python中是一个强大的设计模式,允许我们在不修改原有代码的情况下,扩展或修改函数、方法或类的...

    小书匠语法说明之html属性配置decorate1

    2. 支持环境:小书匠采用`markdown-it`的扩展插件`markdown-it-decorate`来实现此功能,因此在其他不支持此插件的markdown解析器中可能无法正常工作。 3. 参考资源:对于更详细的使用规则,可以查阅官方文档,如`...

    PyPI 官网下载 | decorate-1.0.1-py3-none-any.whl

    标题中的"PyPI 官网下载 | decorate-1.0.1-py3-none-any.whl"表明我们讨论的是一个从Python Package Index (PyPI)官方渠道获取的软件包。PyPI是Python开发者发布和分享自己编写的第三方库的平台,用户可以通过它来...

    Decorate Editor Sharp-开源

    《Decorate Editor Sharp:开源软件助力游戏开发》 在当今的数字时代,开源软件已经成为技术创新的重要推动力之一,尤其在游戏开发领域。"Decorate Editor Sharp"正是一款这样的开源工具,专为ZDoom游戏引擎的用户...

    PyPI 官网下载 | decorate-0.0.13-py3-none-any.whl

    资源来自pypi官网。 资源全名:decorate-0.0.13-py3-none-any.whl

    es-decorate:CoffeeScript 的 ES7 装饰器

    es-装饰 ... decorate = require ' es-decorate ' # Class decorator must be assigned to variable or property. Foo = decorate F ( ' color ' ), G, class # Class name is optional in CoffeeScript

    decorate-demo.zip

    装饰者模式是一种结构型设计模式,它允许在运行时向对象添加新的行为或职责,而无需修改对象本身。这种模式的核心思想是通过将对象包装在一个装饰类中来扩展功能,而不是通过继承。装饰者模式与代理模式有些相似,但...

    decorate:Clojure宏,用于装饰函数

    这是一个用于Compojure的小型库,该库允许通过装饰器功能来增强定义的功能。 例如,这是一个日志装饰器函数: (defn wrap-logging [func desc] ... (decorate func & decorators) -将一个函数包装在一个或多

    graphql-decorate:使用灵活的API轻松装饰graphql-ruby类型

    GraphQL装饰graphql-decorate添加了一个易于使用的界面来装饰类型。 它使您可以将逻辑从类型文件中移出并保持声明性。安装将此行添加到您的应用程序的Gemfile中: gem 'graphql-decorate' 然后执行: $ bundle或将其...

    decorate:差异表观遗传相关检验

    装饰:差分表观遗传相关检验 装饰:差分表观遗传相关检验 安装 library( devtools ) # first install sLED install_github( " lingxuez/sLED " ) ... install_github( ' GabrielHoffman/decorate ' , repos

    react-decorate-props:react-decorate是一个高阶组件,可以帮助您连接className,合并样式并转发其余道具

    react-decorate-props是一个,可以帮助您连接className ,合并style并转发其余的props。 在render()不再有const {className, style, ...others} = this.props 。 用法 // Instead of... class Foo extends React . ...

    ng-decorate:[已弃用] AngularJS 1.x的ES7装饰器

    内容装订@bindString @bindTwoWay @bindOneWay @bindExpression @autoinject defaults Gotcha 备择方案 安装在外壳中: npm i --save-dev ng-decorate# orjspm install npm:ng-decorate 在应用程式中: import { ...

    angular-decorate:Javascript 装饰器 + Angular 1.x

    import { ngInject , ngController , ngService , ngModule } from 'angular-decorate' ; @ ngModule ( { name : 'demoApp' , dependencies : [ ] , inject : [ '$http' ] , configure : [ '$httpPr

    lab-1.8.2-decorate-your-portfolio

    8. **版本控制**:考虑到文件名为`lab-1.8.2-decorate-your-portfolio-main`,可能意味着项目使用了版本控制系统,如Git。学生应学习如何提交、推送和拉取代码更改。 通过这个实验室活动,学生不仅可以提升HTML编写...

    tank模型源码及exe里面都有,该模型思路极其简单

    decorate_left = decorate_top-center_y+center_x; decorate_top = center_x+center_y-index_x; index_x = decorate_right; decorate_right = decorate_bottom-center_y+center_x; decorate_bottom = ...

    react-redux-decorate:连接React-Redux的装饰器

    npm install react-redux-decorate 例子 import React from 'react' import { mapDispatchToProps , mapStateToProps } from 'react-redux-decorate' @ mapStateToProps ( ( state ) => ( { users : state . ...

    DecoratePattern

    装饰模式是一种结构型设计模式,它允许我们向一个对象添加新的功能或行为,而不改变其原有的类。在Java中,装饰模式通常通过继承和组合来实现。下面将详细讲解装饰模式的基本概念、工作原理以及如何在Java中进行实现...

Global site tag (gtag.js) - Google Analytics