`
hjp222
  • 浏览: 16799 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

装饰模块与单向适配器模式比较

阅读更多
package com.donnie;
//单向适配器模式
/*class ReadStrFromFile{
	public void read(){
		System.out.println("从文件上读取字符串");
	}
}
class Convert{
	public void toUpper(){
		System.out.println("转大写");
	}
}
class SubReadStrFromFile extends ReadStrFromFile{
	private Convert convert;
	public SubReadStrFromFile(Convert convert){
		this.convert=convert;
	}
	public void read(){
		super.read();
		convert.toUpper();
	}
}
public class Decorate {
public static void main(String args[]){
	SubReadStrFromFile sf=new SubReadStrFromFile(new Convert());
	sf.read();
}
}*/
//-----------------------------------------
/*单向适配器模式是在主模块上接入一个扩展模块,用继承方法
 * 优势是:能够很好的应付扩展模块的切换
 * 缺陷:扩展模块无法很好的应付主模块的切换
 * 假如上面的扩展模块Convert为主模块ReadStrFromFile服务,但又得为另一个主模块ReadStrFromNet服务
 * 单向适配器,就必须得为ReadStrFromNet再写一个子类,这样就麻烦
 */
//装饰模式要点,主模块的接口注入扩展模块
interface Iread{
	public abstract void read();
}
class ReadStrFromFile implements Iread{
	public void read(){
		System.out.println("从文件上读取字符串");
	}
}
class ReadStrFromNet implements Iread{
	public void read(){
		System.out.println("从网络上读取字符串");
	}
}
class Convert {
	private Iread iread;
	public Convert(Iread iread){
		this.iread=iread;
	}
	public void toUpper(){
		iread.read();
		System.out.println("转大写");
	}
}

public class Decorate {
public static void main(String args[]){
	Convert ct=new Convert(new ReadStrFromNet());
	ct.toUpper();
}
}
/*
 * 现实中案例java读中文的方法就是用到装饰模式
 * FileReader fis= new FileReader(“filaname”);
BufferedReader br= new BuffreedReader(fis);

单向适配器模式与装饰模式要点相比,就是考滤,哪些模块切换的可能性大些

模式提供了一个解决方案,它是一种设计方法
为了降低耦合性增加灵活性
Spring是提供了降低耦合性的一种工具
设计模式提供了常见应用中降低耦合性的设计思想
具体问题还得具体分析*/

 

分享到:
评论

相关推荐

    设计模式解析复习提纲

    - **结构型模式**:包括适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。 - **行为型模式**:包括职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式...

    JAVA模式与设计概念总结

    Java模式与设计概念是软件开发中的核心思想,它们帮助我们构建可维护、可扩展且高效的代码。这些概念包括类与类之间的各种关系,如继承、关联、聚合和合成,以及设计原则,如“开-闭”原则、里氏代换原则、依赖倒转...

    design-pattern:完成任务的方式,只是方程式,算法,过程或统计模型。与软件语言无关,它们以以下方式实现

    结构型模式涉及如何组合类和对象以形成更大的结构,例如适配器模式(Adapter)、装饰器模式(Decorator)和代理模式(Proxy)等,这些模式帮助我们在不修改原有代码的情况下扩展功能。行为型模式则关注对象之间的...

    沪江(23问).pdf

    18. **前端设计模式**:常见的有单例模式、工厂模式、观察者模式、装饰器模式、代理模式等,用于提高代码复用性和维护性。 19. **React/Redux设计模式**:如单例模式用于Store,工厂模式用于Action Creator,观察者...

    超级有影响力霸气的Java面试题大全文档

    从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。 12、...

    mps电源ic选型表

    * **应用场景**: 显示屏背光、装饰照明等场合。 #### 十六、E-Fuse & Load Switches **1. USB Load Switches** * **描述**: 提供USB负载开关解决方案。 * **应用场景**: 需要控制USB端口供电的应用场合。 **2. E...

Global site tag (gtag.js) - Google Analytics