- 浏览: 10938 次
最新评论
文章列表
阅读《研磨设计模式》笔记。之后若有所感,再补充。
抽象工厂模式目的:是为一系列相关对象或者相互依赖的对象创建一个接口,这个接口不是任意堆砌的,而是一系列相关或相互依赖的方法。从某种意义来说,抽象工厂其实是一个产品簇。
示例:
/**
* @description抽象产品A的接口
* @author liuwei
* @date 2014-4-17
* @version 1.0
*/
public interface AbstractProductA {
//定义抽象产品A的相关操作
public void methodA();
}
/**
* @ ...
阅读《研磨设计模式》笔记。之后若有所感,再补充。
工厂方法模式的目的:让父类在不知道具体实现的情况下,完成自身的功能调用,而具体的实现延迟到子类。
示例:
/**
* @description工厂方法所创建的对象的接口
* @author liuwei
* @date 2014-4-16
* @version 1.0
*/
public interface Product {
public void someOperation();
}
/**
* @description
* @author liuwei
* @date 2014-4-16 ...
阅读《研磨设计模式》笔记。之后若有所感,再补充。
单例模式的目的:就是保证一个类只有一个实例
示例:
/**
* @description 懒汉式单例
* @author liuwei
* @date 2014-4-16
* @version 1.0
*/
public class Singleton1 {
private static Singleton1 uniqueSingleton1 = null;
private Singleton1(){};
public static synchronized Singleton1 getInstance(){ ...
阅读《研磨设计模式》笔记。之后若有所感,再补充。
适配器模式 的 目的:客户端需要的功能已经是实现好了,但是客户端使用的接口与实现类的类型不匹配,需要适配器来进行转换匹配。
示例代码:
/**
* @description 定义客户端使用的接口,与特定领域相关
* @author liuwei
* @date 2014-4-16
* @version 1.0
*/
public interface Target {
/**
* 示意方法,客户端请求处理的方法
*/
public void request();
}
/**
* @de ...
阅读《研磨设计模式》笔记。之后若有所感,再补充。
外观模式 的目的是:让外部减少与子系统内的多个模块的交互。
示例:
/**
* @description
* @author liuwei
* @date 2014-4-16
* @version 1.0
*/
public interface AModuleApi {
public void testA();
}
/**
* @description
* @author liuwei
* @date 2014-4-16
* @version 1.0
*/
public class A ...
阅读《研磨设计模式》笔记。之后若有所感,再补充。
简单工厂 的 目的是:封装隔离。很好的体现的这一思想。由工厂来创建接口实例。
也可以用它来创建抽象类和普通类的实例。
示例:
/**
* @description 定义一个接口
* @author liuwei
* @date 2014-4-16
* @version 1.0
*/
public interface Api {
/**
* @param s
*/
public void operation(String s);
}
/**
* @description定义实现A
* ...
java类型的变化
package holding;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class Snow{}
class Power extends Snow{}
class Light extends Power{}
class Heavy extends Power{}
class Crusty extends Snow{}
class Slush extend ...
为什么先执行了alert ???
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").dblclick(function(){
$("p").slideToggle();
...
package test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
class B {
public String sb;
public List<Integer> listB = new ArrayList<Integer>();
}
public class A {
public String sa = "12";
// 匿名内部类初始化数组
public List<Integer ...
package test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
class Aa {
void aMethod() {
System.out.println("A method");
}
}
class Bb extends Aa {
void aMethod() {
System.out.println("A method in B");
}
void bMethod1() ...