让我们用委托来解决 DataHashSet 中的问题:
public class DataHashSet implements Set { private int addCount = 0; private Set set; public function DataHashSet(Set set) { This.set = set; } public boolean function add(Object object) { addCount++; return This.set.add(object); } public boolean function addAll(Collection collection) { addCount += collection.size(); return This.set.addAll(collection); } public int function getAddCount() { return addCount; }}4. 如何使用 Skeletal 模式?
Skeletal 模式既不损失灵活性,又能享受 subtype 的优点 。它为每个接口提供一个实现该接口的抽象类,不指定基础方法(primitive method) 。这意味着将方法设为 abstract 由子类实现,同时它还定义了非基础方法 。然后,由使用该接口的开发者实现接口,负责框架实现 。它不如包装类灵活,比如组合或委托 。为了增加其灵活性,可以使用包装类将调用委托给框架实现的匿名子类对象 。
推荐阅读
- Java虚拟机最多支持多少个线程的探讨
- PHP 多台服务器跨域如何让 session 共享使用
- 如何通过“import”语句确定在Python中导入了哪个文件?详解
- Java基于Solr海量数据搜索,搜索引擎的实现
- 纯JavaScript实现的调用设备摄像头并拍照的功能
- 如何优雅的处理API接口的返回数据-----附源码
- C++如何正确使用智能指针?看完这4个点你就明白了
- 什么是无需物流 物流需要解决的问题
- 阿里巴巴怎么开店注册流程 如何阿里巴巴开店步骤
- 苁蓉益肾颗粒(兰太)的说明书