`

设计模式——装饰模式

 
阅读更多

           看了之前写的那篇博客,感觉有点长而且不容易懂。所以,打算最近将有关设计模式的一些博客慢慢换掉。好了言归正传,说到装饰模式,是一个对组合完美利用的模式。最经典的例子,莫过于卖咖啡,怎么加糖的问题了。相信大家都知道,就不啰嗦了。

           为了灵活的组合出各式各样的咖啡,使用装饰模式最合适不过了。

   首先定义一个借口,是所有产品的接口:包括价格和描述

 

package com.wjy.click;
public interface Product {
	public abstract int price();
	public abstract String detail();
}

 

   然后写我们的基础咖啡类:定价10元

package com.wjy.click;

public class Coffee implements Product{

	@Override
	public int price() {
		// TODO Auto-generated method stub
		return 10;
	}

	@Override
	public String detail() {
		// TODO Auto-generated method stub
		return "I am coffee ";
	}
	

}

 

   最后写我们的装饰类Sugar,定价一份糖5元:

package com.wjy.click;

public class Sugar implements Product{

	private Product product;
	public Sugar(Product product){
		this.product=product;
	}
	@Override
	public int price() {
		// TODO Auto-generated method stub
		return this.product.price()+5;
	}

	@Override
	public String detail() {
		// TODO Auto-generated method stub
		return this.product.detail()+"with sugar ";
	}

}

 

最后就可以卖了:

package com.wjy.click;

public class Client {

	public static void main(String args[]){
		Product product=new Coffee();
		product=new Sugar(product);
		
		System.err.println(product.detail());
		System.err.println("price: "+product.price());
	}
}

 

 

分享到:
评论

相关推荐

    C#设计模式——装饰模式应用实例

    装饰模式是一种结构型设计模式,它允许在运行时动态地给对象添加新的行为或属性,而不必修改原有类的代码。在C#中,装饰模式常用于扩展对象的功能,同时保持对象接口的一致性。本实例是关于如何在开发图形界面构件库...

    设计模式——GFour

    《设计模式——GFour》是一本深受IT从业者喜爱的经典书籍,尤其在C++开发者中具有广泛影响力。设计模式是软件工程领域中的一种最佳实践,它总结了在特定情境下解决问题的常见方法,使得代码可读性更强,复用性更高,...

    设计模式——刘伟

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。刘伟先生在讲解设计模式时,通常会深入浅出地介绍这些模式的原理、应用场景以及如何有效地在实际编程中应用它们。设计模式并不是...

    JAVA设计模式学习12——装饰器模式

    装饰器模式是面向对象设计模式的一种,主要用于在不改变原有对象结构的情况下,动态地为对象增加新的功能。这种模式在Java中尤其常见,因为它允许我们遵循“开闭原则”——对扩展开放,对修改关闭。 装饰器模式的...

    装饰模式——装饰模式.doc

    装饰模式是一种设计模式,属于结构型模式,其主要目的是在不改变对象本身的基础上,通过向对象添加新的行为或属性来扩展其功能。这种模式遵循“开闭原则”,即对扩展开放,对修改关闭。 在装饰模式中,有四个关键...

    设计模式——原版的设计模式

    装饰模式动态地给一个对象添加一些额外的职责;外观模式提供了一个统一的接口,用来访问子系统中的多个接口;代理模式为其他对象提供一种代理以控制对这个对象的访问;组合模式将对象组合成树形结构以表示“部分-...

    设计模式-Java语言中的应用(pdf)

    《设计模式——Java语言中的应用》是一本专为Java开发者深入理解面向对象设计而编写的经典书籍。设计模式是软件工程领域中经过实践验证的、解决常见问题的有效方案,它们代表了在特定上下文中,针对特定问题的最优...

    设计模式——可复用面向对象软件的基础(1)

    在《设计模式——可复用面向对象软件的基础》这本书中,作者Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides(合称GoF)首次提出了23种面向对象设计模式。这些模式涵盖了不同设计场景,如创建型模式、...

    装饰者模式——Decorator

    在博客文章“装饰者模式——Decorator”中,作者可能详细讲解了以下几个方面: 1. 装饰者模式的基本概念和原理。 2. 如何通过代码示例展示装饰者模式的实现。 3. 装饰者模式与继承的区别和优势。 4. 装饰者模式在...

    设计模式之美——教你写出高质量代码

    "设计模式之美——教你写出高质量代码"这个主题旨在帮助开发者更好地理解和应用设计模式,从而提升代码的质量和可维护性。设计模式不仅对面试有所帮助,也是职场发展中的必备技能,无论你使用哪种开发语言。 设计...

    设计模式——JAVA.docx

    ### JAVA设计模式总结之23种设计模式及六大原则 #### 一、设计模式之六大原则 ##### 总原则:开闭原则(Open Close Principle) 开闭原则是设计模式中最核心的原则之一,它强调的是软件实体(类、模块、函数等)...

    设计模式可复用面向对象软件的基础.zip

    书名: 设计模式可复用面向对象软件的基础 英文原书名: Design Patterns:Elements of Reusable Object-Oriented software 作者: Erich Gamma 等 译者: 李英军 马晓星 蔡敏 刘建中 书号: 7-111-07575-7 页码: 254 定价...

    java设计模式——告诉新手一些不知道的东西

    在编程世界中,Java设计模式是面向对象编程领域的一个重要概念,它为解决常见的软件设计问题提供了可重用的解决方案。对于新手来说,设计模式可能显得深奥难懂,但它们实际上是经验丰富的开发者用来提高代码质量、可...

    Python设计模式之装饰模式实例详解

    本文实例讲述了Python设计模式之装饰...设计模式——装饰模式 装饰模式(Decorator Pattern):动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 特点: 有效的把类的核心职责和装饰功能区

Global site tag (gtag.js) - Google Analytics