- 浏览: 100899 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
LLeye:
能不能发份完整的代码给我 865807345@qq.com
jdbcTemplate 例子 -
zhanglu1236789:
不错不错
java 泛型详解 -
happyrabbit:
彻底明白了!
java 泛型详解 -
yanqingluo:
好文章
java 泛型详解 -
moment52:
liutsi 写道moment52 写道LZ我看到一段代码如下 ...
java 泛型详解
合成模式把部分和整体的关系用树结构表示出来。使客户端把一个个单独的成分对象和由它们复合而成的合成对象同等看待。
public interface IFile { //返回自己的实例 IFile getComposite(); //某个商业方法 void sampleOperation(); //获取深度 int getDeep(); //设置深度 void setDeep(int x); }
public class File implements IFile { private String name; // 文件名字 private int deep; // 层级深度 public File(String name) { this.name = name; } // 返回自己的实例 public IFile getComposite() { return this; } // 某个商业方法 public void sampleOperation() { System.out.println("sampleOperation"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getDeep() { return deep; } public void setDeep(int deep) { this.deep = deep; } }
public class Folder implements IFile{ private String name = null; //文件名字 private int deep; //层级深度,根深度为0 private Vector<IFile> componentVector = new Vector<IFile>(); public Folder(String name) { this.name = name; } //返回自己的实例 public IFile getComposite() { return this; } public void sampleOperation() { System.out.println("sampleOperation"); } //增加一个文件或文件夹 public void add(IFile iFile) { componentVector.add(iFile); iFile.setDeep(this.deep + 1); } //删除一个文件或文件夹 public void remove(IFile iFile) { componentVector.removeElement(iFile); } //返回直接子文件(夹)集合 @SuppressWarnings("unchecked") public Vector getAllComponent() { return componentVector; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getDeep() { return deep; } public void setDeep(int deep) { this.deep = deep; } }
public class Client { public static String indentChar = "\t"; // 文件层次缩进字符 public static void main(String args[]) { new Client().test(); } /** * 客户端测试方法 */ public void test() { // 根下文件及文件夹 Folder root = new Folder("树根"); Folder b1_1 = new Folder("1_枝1"); Folder b1_2 = new Folder("1_枝2"); Folder b1_3 = new Folder("1_枝3"); File l1_1 = new File("1_叶1"); File l1_2 = new File("1_叶2"); File l1_3 = new File("1_叶3"); // b1_2下的文件及文件夹 Folder b2_1 = new Folder("2_枝1"); Folder b2_2 = new Folder("2_枝2"); File l2_1 = new File("2_叶1"); // 缔造树的层次关系(简单测试,没有重复添加的控制) root.add(b1_1); root.add(b1_2); root.add(l1_1); root.add(l1_2); b1_2.add(b2_1); b1_2.add(b2_2); b1_2.add(l2_1); root.add(l1_3); root.add(b1_3); // 控制台打印树的层次 outTree(root); } public void outTree(Folder folder) { System.out.println(folder.getName()); iterateTree(folder); } /** * 遍历文件夹,输入文件树 * * @param folder */ @SuppressWarnings("unchecked") public void iterateTree(Folder folder) { Vector<IFile> clist = folder.getAllComponent(); for (IFile file : clist) { if (file instanceof Folder) { Folder cm = (Folder) file; System.out.println(getIndents(file.getDeep()) + cm.getName()); iterateTree(cm); } else { System.out.println(getIndents(file.getDeep()) + ((File) file).getName()); } } } /** * 文件层次缩进字符串 * * @param x * 缩进字符个数 * @return 缩进字符串 */ public static String getIndents(int x) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < x; i++) { sb.append(indentChar); } return sb.toString(); } }
发表评论
-
调停者模式
2011-02-17 11:42 1696看了很久感觉理解不太好! 调停者模式包装了一系列对 ... -
访问者模式
2011-02-16 11:14 5583访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一 ... -
状态设计模式
2011-02-15 11:28 1233状态模式允许一个对象 ... -
备忘录设计模式
2011-02-14 14:57 1070备忘录(Memento)模式又称标记(Token)模式。GO ... -
命令模式
2011-01-28 20:24 1202命令模式把一个请求或者操作封装到一个对象中。他把发出命令的责任 ... -
责任链模式
2011-01-28 10:16 1117责任链模式里,很多对象由每一个对象对其下家的引用二连接起来形成 ... -
迭代子模式
2011-01-27 19:18 1587迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表 ... -
观察者模式
2011-01-26 17:15 1176观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听 ... -
模板方法模式
2011-01-26 09:33 970一个抽象类,将部分逻辑以具体方法以及构造子的形式实现,然后声明 ... -
策略模式
2011-01-25 17:29 1207策略模式用意是针对一组算法,将每一个算法封装到具有共同接口的独 ... -
不变模式
2011-01-25 15:05 1128一个对象的状态在对象创建之后就不再变化,这就是不变模式 不变 ... -
桥模式
2011-01-24 16:09 1005将抽象化与实现化脱耦,使得二者可以独立变化。该模式的目标是通过 ... -
门面模式
2011-01-22 11:15 1013外部系统与一个子系统的通信必须通过一个统一的门面对象进行。门面 ... -
装饰器模式
2011-01-22 10:40 1075public interface ISource { ... -
单纯享元模式
2011-01-15 18:18 1018享元模式以共享的方式高效的支持大量的细粒度对象 享元对象能做 ... -
缺省适配器
2011-01-15 15:50 952缺省适配器为一个接口提供缺省实现,这样子类可以从这个缺省的实现 ... -
对象适配器(object adapter)
2011-01-15 15:11 1250把一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不 ... -
原始模型模式
2011-01-15 11:31 963通过一个原型对象来指明所要创建的对象的类型,然后用复制这个原型 ... -
建造设计模式
2010-12-28 16:02 831Director /** * 导 ... -
抽象工厂设计模式
2010-12-27 12:17 907/** * 园丁 */ public i ...
相关推荐
在描述中提到的两种实现方式——安全式(Safe)和透明式(Transparent)合成模式,主要区别在于如何处理对叶子节点和组合节点的访问: - **安全式**:强调对组合对象和叶子对象进行区分,只有当尝试访问的节点是...
在合成生物行业的商业模式中,主要分为产品型和平台型。产品型企业,如华恒生物、凯赛生物、新日恒力、圣泉集团、科拓生物、三元生物、金丹科技和利尔化学等,它们通过完整的产业链,从生物改造、发酵纯化到产品改性...
- **合成模式**:合成模式用于表示部分-整体的层次结构,使得用户对单个对象和组合对象的使用具有一致性。 - **装饰模式**:装饰模式动态地给对象添加新的行为或职责,提供了比继承更灵活的扩展机制。 - **门面...
8. 合成模式:结构型模式,用于描述部分-整体的关系,通过组合而不是继承实现。合成模式让客户端可以以一致的方式处理单个对象和对象集合。 9. 装饰模式:结构型模式,动态地给一个对象添加新的行为,是实现继承的...
这里我们聚焦于C#语言中的设计模式学习笔记,涵盖了多种经典的设计模式,如合成模式、桥梁模式、装饰模式、享元模式、门面模式、命令模式、工厂方法、策略模式、代理模式以及状态模式。下面将对这些模式逐一进行详细...
然而,合成生物学的发展也面临一些风险,包括项目实施进度延迟、生物质原材料价格波动、经济和下游行业不确定性、国际贸易环境变化以及生物安全和伦理问题。尽管如此,鉴于其在碳中和趋势下的独特优势和巨大的市场...
例如,深度合成技术在娱乐(如电影后期制作)、媒体(如新闻生成)、安全(如身份验证)等方面的潜在应用。 6. 法律法规与伦理问题: 随着深度合成技术的发展,可能会出现法律、伦理和社会问题,例如知识产权侵犯...
合成数据生成技术是一种在保护隐私和安全的同时,用于模拟真实数据的方法。在现代信息技术中,尤其是在数据分析、机器学习和人工智能领域,对大量数据的需求日益增长。然而,由于隐私法规的限制,许多敏感信息不能...
合成模式是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。合成模式使得客户端可以一致地处理单个对象和组合对象,简化了对对象集合的操作。 9. 装饰器模式(Decorator): 装饰...
合成生物学的本质是让细胞为人类工作生产想要的物质,与传统化学合成相比,合成生物学具有微型化、可循环、更安全的特点;与传统发酵工程相比,合成生物学对细胞的干预是定向的。合成生物学有望移步幕前,成为人类...
在安全式的合成模式中,管理子对象的方法仅出现在树枝构件类中,而非抽象构件类中。这意味着树叶构件类无需关心管理子对象的问题,这有助于避免潜在的安全问题和错误。 **安全式合成模式的实现示例:** - **抽象...
7. **合成模式**(Composite) - **模式名称**:合成模式 - **问题**:需要处理树形结构中的对象。 - **解决方案**:将对象组合成树形结构,以便客户能够统一处理单个对象和复合对象。 - **效果**:简化了客户端...
在Photoshop中,可以利用图层功能进行精细调整,如添加效果、混合模式或调整透明度,以优化游戏画面的表现。完成修改后,用户还可以进一步将TGA文件转换为其他格式,如GIF,这是一种支持动画的格式,广泛应用于网页...
9. 代理模式:结构型模式,为其他对象提供一种代理以控制对这个对象的访问,可以用于增加安全性、控制访问等。 10. 适配器模式:结构型模式,将不兼容的接口转换为用户期望的接口,使原本不兼容的类可以协同工作。 ...
【科大讯飞语音合成就绪】 ...综上,科大讯飞的语音合成TTS在线接口为PHP开发者提供了一个高效且灵活的工具,通过简单的API调用,即可实现高质量的文本转语音功能,大大增强了应用的互动性和可用性。
本文将基于“科大讯飞语音合成demo”项目,详细介绍如何利用科大讯飞的SDK进行语音合成,并探讨在线与离线模式的应用场景与差异。 首先,科大讯飞的语音合成技术(TTS,Text To Speech)能够将文本转换为自然流畅的...
- 代理模式:为对象提供代理以控制对原对象的访问,可以用于远程代理、虚拟代理、安全代理等。 - 外观模式:提供一个简单的接口来访问复杂的子系统,降低了系统的复杂度。 - 桥接模式:将抽象部分与实现部分分离...