多种设计模式结合Java,java设计模式混合使用实例

  多种设计模式结合Java,java设计模式混合使用实例

  组合模式:允许你将对象组合成树形结构来表现"整体/部分"层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。

  案例情景:上次,我和友人去超市分头购物,在结帐时,我们遍历一下我们的"扫货"清单(遍历打印购物清单),在实现上,我使用数组列表,友人使用事物[]数组,给遍历造成困扰。

  在遍历时发现赠送的商品,没有打印。现在我们有打印赠送物品的需求。

  AbstractThing.java

  公共抽象类抽象事物

  公共抽象字符串toString();

  public void add(抽象物thing){ };

  public void remove(抽象物thing){ };

  Thing.java

  公共类对象扩展抽象对象{

  私有数组列表抽象事物列表=新数组列表抽象事物

  私有字符串名称;

  私长价;

  公共事物(字符串名称,长价格){

  this.name=name

  this.price=价格;

  @覆盖

  公共字符串toString() {

  string返回string= Thing[name= name ,price= price ];

  for(迭代器抽象事物迭代器=list。迭代器();迭代器。有next();){

  返回字符串=迭代器。next();

  返回返回字符串;

  @覆盖

  public void add(抽象事物事物){

  列表。加(物);

  @覆盖

  public void remove(抽象事物事物){

  列表。移除(事物);

  public boolean hasNext() {

  while(位置东西数组。长度事物数组[位置]!=null){

  返回真实的

  返回错误的

  @覆盖

  公共事物下一个(){

  返回事物数组[位置];

  @覆盖

  公共无效删除(){

  //无所事事

  Me.java

  东西手机=新东西(手机, 2000);

  事物项目蓝牙耳机=新的ThingItem(蓝牙耳机, 0);

  phone.add(蓝牙耳机);

  购物[3]=电话;

  公共迭代器Thing createIterator(){

  返回新的数组运算符(购物);

  Test.java

  公共静态void main(String args[]){

  数组列表迭代器Thing allIterator=新数组列表迭代器thing();

  我我=新的我();

  朋友朋友=新朋友();

  迭代器事物=我。创建迭代器();

  迭代器事物朋友sIterator=朋友。创建迭代器();

  畸形人。添加(meIterator);

  畸形人。add(friendsIterator);

  for(Iterator Thing Iterator:allIterator){

  while(iterator.hasNext()){

  系统。出去。println(迭代器。next());

  系统。出去。println(-);

  测试结果:

  事物[名称=香蕉,价格=12]

  事物[名称=电脑,价格=3000]赠送[名称=鼠标,价格=0]赠送[名称=耳机,价格=0]赠送[名称=键盘,价格=0]

  -

  事物[名称=牛奶,价格=15]

  事物[名称=苹果,价格=10]

  事物[名称=薯片,价格=4]

  事物[名称=手机,价格=2000]赠送[名称=蓝牙耳机,价格=0]

  -

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: