软构visitor、decorator,iterator大题解题思路

题目背景:HIT软构2019大题

1.visitor

在不改变特定类型代码的基础上对特定类型object进行特定操作

例:要在ParkingField对象中新增一个方法(ParkingField主体已完成,pf为构造出来的对象)

(1)ParkingField中程序如下:pf.accpt(new CalculateRatioVisitor) (pf.accept 需要新增接口和实现,new的CalculateRatioVisitor要求新增接口和类)

(2)新增接口,其中只有一个方法:double visit(ParkingField pf)。再新增一个类实现此接口,并且具体实现这个visit方法

(3)在ParkingField接口中加入方法accept(上一个新增的接口 v),在上一个接口的实现代码中实现这个方法:return v.visit(this)

2.decorator

为对象增加不同侧面的特性,通过委托机制增加到对象上(多个特性叠加需要用递归思维)

例:在已有对象ParkingField基础上新增一个field:String company;新增功能特性:parking方法中最后打印欢迎信息

(1)新增抽象类,实现ParkingField接口,其中加入一个field:ConcreteParkingField pf;

(2)新增一个类,继承上一个抽象类,其中加入新的field:String company

其中constructer为:this.pf = pf; this.company = company;

其它方法中只需重写parking方法:pf.parking(c,num); system.out.println("Welcome");

3.Iterator

迭代器,略

例: 设计一个能逐个读取car类型的迭代器

  (1)新增一个Iterable<car>接口,其中实现iterator()方法:方法返回new ParkingFieldIterrator()

  (2)增加内部类ParkingFieldIterator继承上述接口,在其中实现hasNext(),next等方法

  (3)具体应用:Iterator<Car> iterator = pf.iterator();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是常见的Java设计模式: 1. 工厂模式(Factory Pattern) 2. 单例模式(Singleton Pattern) 3. 建造者模式(Builder Pattern) 4. 原型模式(Prototype Pattern) 5. 适配器模式(Adapter Pattern) 6. 桥接模式(Bridge Pattern) 7. 组合模式(Composite Pattern) 8. 装饰器模式(Decorator Pattern) 9. 外观模式(Facade Pattern) 10. 享元模式(Flyweight Pattern) 11. 代理模式(Proxy Pattern) 12. 观察者模式(Observer Pattern) 13. 中介者模式(Mediator Pattern) 14. 命令模式(Command Pattern) 15. 访问者模式(Visitor Pattern) 16. 解释器模式(Interpreter Pattern) 17. 迭代器模式(Iterator Pattern) 18. 策略模式(Strategy Pattern) 19. 模板方法模式(Template Method Pattern) 20. 职责链模式(Chain of Responsibility Pattern) 21. State 模式(状态模式) 22. Memento 模式(备忘录模式) 23. Builder 模式(建造者模式) 24. Composite 模式(组合模式) 25. Command 模式(命令模式) 26. Adapter 模式(适配器模式) 27. Proxy 模式(代理模式) 28. Bridge 模式(桥接模式) 29. Decorator 模式(装饰器模式) 30. Facade 模式(外观模式) 31. Flyweight 模式(享元模式) 32. Interpreter 模式(解释器模式) 33. Iterator 模式(迭代器模式) 34. Mediator 模式(中介者模式) 35. Memento 模式(备忘录模式) 36. Observer 模式(观察者模式) 37. Prototype 模式(原型模式) 38. Singleton 模式(单例模式) 39. Strategy 模式(策略模式) 40. Template Method 模式(模板方法模式) 41. Visitor 模式(访问者模式)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值