`
文章列表
阅读《研磨设计模式》笔记。之后若有所感,再补充。 抽象工厂模式目的:是为一系列相关对象或者相互依赖的对象创建一个接口,这个接口不是任意堆砌的,而是一系列相关或相互依赖的方法。从某种意义来说,抽象工厂其实是一个产品簇。 示例: /** * @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() ...
Global site tag (gtag.js) - Google Analytics