定义抽象类的作用:避免子类设计的随意性,严格限定了子类的设计。由于继承中的多态实现了面向对象编程,随着子类的不断继承,父类的修改变得困难起来。例如父类中有飞f()函数,但子类都没有对其重写。又如父类中没有f(),但子类中却需要这个操作。因此引入抽象类,其用途就是被继承。 定义抽象类就是在类中至少声....
分类:
其他好文 时间:
2014-08-01 13:05:51
阅读次数:
124
今天看到的。Mark一下接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人...
分类:
其他好文 时间:
2014-08-01 12:46:31
阅读次数:
151
简单工厂模式(simple factory)是类的创建模式,又叫静态工厂方法(static factory method)模式。简单工厂模式就是由一个工厂类根据传入的参数决定创建哪一种的产品类。有4个角色-->> 工厂类角色:是具体产品类角色直接调用者。 抽象产品角色:接口或抽象类,负责具体产品角色...
分类:
其他好文 时间:
2014-08-01 12:44:01
阅读次数:
246
在使用抽象方法实现多态之前,我们必须知道一些知识点:1.抽象类不能被实例化;2.抽象类可以包含非抽象成员,它们可以由其子类继承调用。我们可以先创建一个Person的抽象类,代码如下: 1 abstract class Person 2 { 3 4 public...
分类:
Web程序 时间:
2014-08-01 04:44:51
阅读次数:
254
本文将介绍抽象类和接口的主要区别,以及各自的应用场景...
分类:
其他好文 时间:
2014-08-01 00:10:11
阅读次数:
295
定义:模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
结构图:
AbstractClass是抽象类,其实也就是一抽象模板,定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现。顶级逻辑也有可能调用一些具体方法...
分类:
其他好文 时间:
2014-07-31 23:55:40
阅读次数:
245
定义:观测者模式定义了一种一对多的依赖关系,让多个观测者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观测者对象,使它们能够自动更新自己。
结构图:
Subject类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个接口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观测者。
Obse...
分类:
其他好文 时间:
2014-07-31 23:55:30
阅读次数:
322
策略模式(基于接口编程。随时想到一个问题,那就是如果后期有新的行为需要添加,如何提高代码的弹性和复用性):抽象类鸭子都会游泳,会有不同的外观。具体类鸭子继承基类,因此具备了基类鸭子的特性和行为。现在有个新的需求,要求一个会飞的鸭子和吱吱叫的鸭子,如果将会飞行为和叫的行为直接加入基类中,那么所有继承该...
分类:
其他好文 时间:
2014-07-31 23:29:40
阅读次数:
219
在使用Lucene时,有一条建议”不要频繁去打开关闭硬盘索引”。为什么会有这条建议?这就需要在IndexReader的实例化过程中找答案。先说一个结论“IndexReader的实例化过程是一个非常耗时的过程”。由于IndexReader只是一个抽象类,在调用代码:真正得到的是StandardDirectoryRea..
分类:
其他好文 时间:
2014-07-31 17:22:17
阅读次数:
226
Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。schedule的意思(时间表、进度表)timer.schedule(new MyTask(event.getServlet...
分类:
其他好文 时间:
2014-07-31 16:20:56
阅读次数:
259