- 浏览: 91228 次
- 性别:
- 来自: 广州
-
最新评论
-
zuowoziji123:
跟thinking in java里写的一模一样 晕
匿名内部类的初始化 -
hbyandy:
...
组合模式 -
speedup:
jvmlover 写道zwzm85 写道淘宝研究生是6k--8 ...
阿里巴巴和淘宝的校园应聘经历 -
sdh5724:
30以后的技术人员才是真正的在玩技术, 公司投资那么多IT设备 ...
阿里巴巴和淘宝的校园应聘经历 -
former:
我觉得:
"30岁转行"这句话也许你没有说 ...
阿里巴巴和淘宝的校园应聘经历
文章列表
组合模式(Composite pattern)定义:
允许你将对象组合成树形结构来表现"整体/部分"层次结构.
组合能让客户以一致的方式处理个别对象以及对象组合.
使用组合结构,我们能把相同的操作应用在组合和个别对象上.
换句话说,在大多数情况下,我们可以忽略对象组合和个别对象之间的差别.
- 2008-10-18 15:57
- 浏览 1358
- 评论(1)
迭代器模式
定义:提供一种顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示.
迭代器模式让我们能游走于聚合内的每一个元素,而又不暴露其内部的表示.
把游走的任务放在迭代器上,而不是聚合上.这样简化了聚合的接口和实现,
也让责任各得其所.
OO原则:一个类应该只有一个引起变化的原因.
此原则告诉我们,尽量让每个类保持单一责任.
类的每个责任都有改变的潜在区域.超过一个责任,意味着超过一个改变的区域.
内聚(cohesion): 它用来度量一个类或模块紧密地达到单一目的或责任.
当一个模块或一个类被设计成只支持一组相关的功能时,我们说它具有高内聚;
反之,当被设计成支持一组不相关的功能 ...
- 2008-10-13 21:30
- 浏览 1008
- 评论(0)
package desginpattern.adapter.ducks;
/*
* 适配器模式定义:
* 将一个类的接口,转换成客户期望的另一个接口.适配器让原本接口不兼容的类可以合作无间.
*
* NOTES:
* 适配器有两种:对象适配器和类适配器,分别使用组合和继承两种方式实现,
* 类适配器须同时继承被适配者(adaptee)和目标类(target).
* 此方式只适合于支持多重继承的语言,JAVA并不被支持.
*
* 此类为适配器模式核心类,需要实现被适配者的接口.
* 火鸡(适配者)要装鸭子(被适配者)当然要会鸭子的方法.
*/
pu ...
- 2008-10-13 16:37
- 浏览 802
- 评论(0)
* 外观模式定义:
* 它提供一个统一的接口,用来访问子系统中的一群接口.
* 外观定义了一个高层接口,让子系统更容易使用.
*
* OO原则:"最少知识(Least Knowledge)"原则
* 即我们要减少对象之间的交互,只留下几个"密友".
* 只和你的密友谈话.
*
* 如何不要赢得太多的朋友和影响太多的对象?
* 此原则提供的方针:
* 就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法:
* 1.该对象本身
* 2.被当做方法的参数而传递进来的对象
* 3.此方法所创建或实例化的任何对象
* 4. ...
- 2008-10-13 16:21
- 浏览 905
- 评论(0)
命令模式:将"请求"封闭成对象,以便使用不同的请求,队列或者日志来参数化其他对象.
命令模式也支持可撤销的损伤.
1.命令模式将发出请求的对象和执行请求的对象解耦.
2.在被解耦的两者之间是通过命令对象进行沟通的.命令对象封装了接收者和一个或一组动作.
3.调用者通过调用命令对象的execute()发出请求,这会使得接收者的动作被调用.
4.调用者可以接受命令当做参数,甚至在运行时动态地进行.
5.命令可以支持撤销,做法是实现一个undo()方法来回到execute()被执行前的状态.
6.宏命令是命令的一种简单的延伸,允许调用多个命令.宏方法也可以支持撤销. ...
- 2008-10-12 21:03
- 浏览 842
- 评论(0)
strategy pattern
原则:针对接口编程,而非实现编程!!!
public abstract class Duck {
FlyBehavior flyBehavior;
QuackBehavior quackBehavior;
public Duck() {
}
abstract void display();
public void performFly() {
flyBehavior.fly();
}
public void performQuack() {
quackBehavior.quack();
}
...
- 2008-10-12 11:24
- 浏览 735
- 评论(0)
public interface Subject {
public void registerObserver(Observer o);
public void removeObserver(Observer o);
public void notifyObservers();
}
public interface Observer {
public void update(float temp, float humidity, float pressure);
}
public interface DisplayElement {
public void ...
- 2008-10-12 10:41
- 浏览 825
- 评论(0)
Template Method
模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现.
它是一个骨架,在框架的设计中多用此设计模式.
对模板方法进行挂钩:
钩子是一种被声明在抽象类中的方法,但只有空的或者默认的实现.钩子的存在,
可以让子灰有能力对算法的不同点进行挂钩.要不要挂钩,由子类自行决定.
好莱坞原则:
高层组件对低层组件的方式是"别调用我们,我们会调用你".
public abstract class CaffeineBeverage {
//不希望子类覆盖此方法,声明为final
final void prepareRecipe() ...
- 2008-10-12 10:11
- 浏览 946
- 评论(0)
public class Singleton {
private static Singleton UniqueInstance;
private Singleton(){}
public static Singleton getInstance(){
if(UniqueInstance == null)
UniqueInstance = new Singleton();
return UniqueInstance;
}
}
* Notes:
* 多线程的处理注意点:
* 1.可在getInstance()方法前加上synchroni ...
- 2008-10-11 16:17
- 浏览 853
- 评论(0)
isAlive(),join()的使用
isAlive()方法在Thread中定义:final bollean isAlive() ,
所以只能在Thread类的实例或其子类中调用.
一个更经常使用的方法是调用join()方法来等待另一个线程的结束.它的定义如下:
final void join() throws InterruptedException
这个方法一直等待,直到它调用的线程终止.
package mythread;
class NewThread implements Runnable {
String name; // name of thread
Threa ...
- 2008-10-11 15:33
- 浏览 1131
- 评论(0)
启动监听器:lsnrctl start [linstener_name];
启动EM:emctl start dbconsole
启动isqlplus:isqlplusctl start
查看所连接的数据库的实例名:(需DBA权限)show parameter instance
或 SELECT host_name, instance_name, version FROM v$instance
查询某用户下有哪些自定的表和视图:
select * from tab;或 select object_name from dba_obje ...
- 2008-10-11 15:30
- 浏览 1114
- 评论(0)
Oracle数据导入导出imp/exp 参考:http://www.cnblogs.com/tohen/articles/1083323.html在命令提示符下执行exp help=y 和imp help=y 可以查看更详细的帮助文档.
任务要求:导出SCC数据库下的用户LIN下的三张表:lin.course,lin.sc,lin.student
C:\Documents and Settings\Administrator>exp sys/sys@SCC file=d:\scclin.course,lin.sc,lin.student)
Export: Release 9.2 ...
- 2008-10-08 11:30
- 浏览 4502
- 评论(0)
一个BAT批处理文件的问题
- 博客分类:
- 其他
今天因为局域网ARP病毒攻击,写了个BAT批处理文件就两行:ARP -DARP -S GatewayIP GatewayMAC保存文件为ARP.BAT双击运行,结果一直就不停地执行第一个命令,不停刷屏.
最后查出问题出来:不能保存文件名为ARP.BAT改个文件名ARPKILL.BAT,一切OK!
总结:文件最好不能命令为命令关键字,特别是可执行文件.