composite java,java设计模式_Composite模式
Composite模式(组合)
Java深入到一定程度,就不可避免的碰到设计模式这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Composite(组合模式)模式是比较常用的一个模式.
Composite组合模式,将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。
优点: 1.使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就不必关系自己处理的是单个对象还是整个组合结构,这就简化了客户端代码。
2.更容易在组合体内加入对象部件. 客户端不必因为加入了新的对象部件而更改代码。
在此写了6个java类来描述说明Composite设计模式的实现方式;
1、 Circle.java 部件-圆
2、 Graph.java 部件-抽象类
3、 Line.java 部件-线
4、 Picture.java 部件-图
5、 Rectangle.java 部件-方
6、 PictureTest.java 带有main方法的测试类
=============== 1、 Circle.java
package composite;
//部件-圆
public class Circle extends Graph {
public void draw() {
System.out.println("Draw a circle.");
}
}
=============== 1 end
=============== 2、 Graph.java
package composite;
import java.util.Iterator;
//部件-抽象类
public abstract class Graph{
//画图
public abstract void draw();
//增加一个图形
public void add(Graph g){};
//删除一个图形组件
public void remove(Graph g){};
//获得组合体的内部部件
public Iterator iter(){return null;};
}
=============== 2 end
=============== 3、 Line.java
package composite;
//部件-线
public class Line extends Graph {
public void draw() {
System.out.p
composite java,java设计模式_Composite模式相关推荐
- Java常用设计模式————原型模式(一)
介绍 原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象. 原型模式用于创建重复的对象,同时又能保证性能.当直接创建对象的代价比较大时,则采用 ...
- Java 有限状态机 (设计模式——状态模式)
Java 有限状态机 (设计模式--状态模式) 编写代码的时候,有时会遇见较为复杂的swith...case...和if...else...语句.这一刻有时会想到状态机,用有限状态机替换swith.. ...
- Java常用设计模式————组合模式
引言 组合模式,是一种类似递归算法的结构性设计模式,通过以简单的 List ,组合本类对象,实现树状对象结构的"部分.整体"的层次. 它可以让调用程序不需要关心复杂对象与简单对象的 ...
- Java常用设计模式————工厂模式
简介: 工厂模式(Factory Pattern)是Java中最常用的设计模式之一,又称多态工厂模式.虚拟构造器模式.属于创建型模式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通 ...
- Java常用设计模式-策略模式
策略模式是一个非常实用的设计模式,指定义了一类算法并将其封装起来,并使得它们之间可以灵活地切换,并且不影响客户端. 1,从一个例子开始 我们常常会在网上买东西,很多购物平台都会有着各种各样的优惠策略供 ...
- Java之设计模式:工厂模式
工厂模式 案例 传统方法 简单工厂模式 基本介绍 案例改进 简单工厂模式的另外一种写法(静态工厂模式) 案例新需求 工厂方法模式 基本介绍 案例改进 抽象工厂模式 基本介绍 实例改进 案例 先看一个具 ...
- Java 常用设计模式 -- Builder模式
Builder模式是在Java中最流行的模式之一.它很简单,有助于保持对象不可变,并且可以使用Project Lombok的@Builder或Immutables等工具生成,仅举几例. 模式的流畅变体 ...
- java的设计模式 - Builder模式
Builder 模式的目的? 构造对象的方式过于复杂,不如将之抽离出来.比如,构造器参数过多 这样说也有点抽象,举个例子吧. 举个例子 比如 非常热门的消息队列RabbitMQ 的 AMQP.Basi ...
- Java常用设计模式————桥接模式
引言 在实际的业务中,经常会遇到多维度的概念组合,公园的门票,颐和园有年票.月票.日票,故宫也有年票.月票.日票.那么不同的公园和票种类型就可以视为两种不同的纬度,它们之间会形成相互组合的关系. 在类 ...
最新文章
- 系统架构的过程 浮现式设计
- php开发我的世界插件,WorldEdit/开发与API
- 有认知会推理!视觉大模型的未来不只靠表征
- 电脑安装python3.7说缺少-安装python缺少
- hbase1.1.1 连接集群_Hadoop2.7.1+Hbase1.1.2集群环境搭建(10) hadoop hbase kerberos
- 【java】java 命令 Unable to open socket file: target process not responding or HotSpot VM not loaded
- php js后端渲染,webpack后端渲染详解
- leetcode[232]用栈实现队列/Implement Queue using Stacks
- dos下载ftp文件linux,在DOS和LINUX下的FTP命令
- 一台机器安装两个LINUX系统的操作与经验
- spss案例教程主成分分析与因子分析及SPSS实现
- 通过Daffodil for VS使VS2010的IDE可以用VC6 VC7.1 VC9等编译器进行项目编译
- xci转nsp_找不到xci怎么办,自己动手丰衣足食!
- 欢迎关注中文开源字体集 Open Source Fonts Collection for Chinese
- 管家婆登录服务器未响应,管家婆辉煌登录点击下一步没有反应解决办法
- 重装系统 重启计算机失败,一键重装系统win7后重启进入系统失败
- spring boot 动态代理
- 【深度学习】目标检测综述
- 【浙江大学】一个开源的知识图谱表示学习框架
- 《月下独酌》赏析-(李白明月姑娘之一)