随笔分类 - 设计模式
摘要:用函数对象表示策略 有些语言支持函数指针(function pointer)、代理(delegate)、lambda表达式(lambda expression),或者支持类似的机制,允许程序把“调用特殊函数能力”存储起来并传递这种能力。这种机制通常用于允许函数的调用者通过传入第二个函数,来指定自己的
阅读全文
摘要:类层次优于标签类 有时候,可能会遇到带有两种甚至更多风格的实例代码的类,并包含表示实例风格的 标签(tag)域 。例如,考虑下面这个类,它能够表示圆形或者矩形: 这种标签类有着许多的缺点。他们之中充斥着样板代码,包括枚举声明、标签域以及条件语句。由于多个实现乱七八糟的挤在了单个类中,破坏了可读性。内
阅读全文
摘要:覆盖equals方法时请遵守通用约定 覆盖equals方法看起来很简单,但是有许多覆盖方式会导致错误,并且后果很严重。最容易避免这种类问题的方法就是不覆盖equals方法,在这种情况下,类的每个实例都只能与它自己相等。如果满足了一下任何一个条件,这都是所谓期望的结果: 类的每
阅读全文
摘要:builder模式的新学习 静态工厂和构造器有个共同的局限性:他们不能很好的扩展到大量的可选参数。大多数产品在牧歌可选与中都会有非零的值 对于这种类,应该使用哪种构造器或者静态方法来进行编写?程序员一般习惯采用重叠构造器(telescoping constructor)模式。在这种模式下,你可以第一
阅读全文
摘要:单例模式的新实现 jdk1.5 之前 单例模式的两种方式,两种方法都是要把构造器保持私有的,并导出公有的静态成员,以便允许客户端能够访问该类的唯一实例。 第一种方法中,公有的静态成员是个final域: 私有的构造器仅被调用一次,用来实例公有化的静态 域`Elvis.INSTANCE Elvis El
阅读全文

浙公网安备 33010602011771号