设计模式
greencacti
这个作者很懒,什么都没留下…
展开
-
Dynamic Proxy的实现
Wife.java:package com.cisco.gendwang;public interface Wife { void cook(); }MyWife.java:package com.cisco.gendwang;public class MyWife implements Wife { public MyWife() {原创 2013-05-21 20:41:21 · 550 阅读 · 0 评论 -
设计模式8:Proxy
Server.java:package gendwang.cisco.com;public interface Server { public void handleRequest(String request);}AAAServer.java:package gendwang.cisco.com;public class AAAServer implements原创 2013-08-31 19:03:43 · 583 阅读 · 0 评论 -
设计模式6:Composite
Entry.java:package gendwang.cisco.com;public abstract class Entry { private int height = 0; private String name; private Type type; public Entry(String name) { this.name = name; } pu原创 2013-08-29 22:11:59 · 638 阅读 · 0 评论 -
设计模式5:Adapter
OperationEngineer.java:package gendwang.cisco.com;public interface OperationEngineer { public void writeTool(); public void deployService();}PPMDeveloper.java:package gendwang.cisco.com原创 2013-08-29 21:25:18 · 544 阅读 · 0 评论 -
设计模式4:Singleton
EagerSingleton.java:package gendwang.cisco.com;public class EagerSingleton { private static final EagerSingleton instance = new EagerSingleton(); private EagerSingleton() { } public stat原创 2013-08-28 22:36:17 · 467 阅读 · 0 评论 -
设计模式3: Abstract Factory
Button.java:package gendwang.cisco.com;public interface Button { public String getName();}UnixButton.java:package gendwang.cisco.com;public class UnixButton implements Button{ public原创 2013-08-28 22:19:46 · 616 阅读 · 0 评论 -
设计模式2: Factory Method
Product.java:package gendwang.cisco.com;public interface Product { public String getType();}ConcreteProduct1.java:package gendwang.cisco.com;public class ConcreteProduct1 implements Pr原创 2013-08-28 22:00:14 · 542 阅读 · 0 评论 -
设计模式1: Simple Factory
Product.java:package gendwang.cisoco.com;public interface Product { public String getType();}ConcreteProduct1.java:package gendwang.cisoco.com;public class ConcreteProduct1 implements原创 2013-08-28 21:49:41 · 577 阅读 · 0 评论 -
State设计模式在服务器软件开发中的应用和思考
1. C语言实现服务器软件时的常用编程模型 熟悉服务器软件开发的开发人员都知道使用Producer-Consumer模型加上线程池隔离消息的接收和消息的处理,但到消息的具体处理时一般是构建一个实例状态和消息类型的二维矩阵,矩阵的内容是函数指针。本文默认认为你熟悉State Design Pattern,主要介绍用State Design Pattern来替换这个方法。2. S原创 2013-06-06 22:35:03 · 897 阅读 · 0 评论 -
Sql语言解析器实现示例
最近项目快release了,我手头上也不忙,花三个小时写了个Sql语言解析器框架,也可以用于产品自定义语言的实现方法。本文实现了insert的command,其他命令可以参照实现。MySQL.java:package com.cisco.gendwang;public class MySQL { public static void main(String[] arg原创 2013-06-14 18:48:16 · 4904 阅读 · 2 评论 -
HttpServlet是不是Singleton设计模式
描述:在很多书上都提到HttpServlet都是Singleton模式,因此在Servlet Container里面只会创建一个HttpServlet实例,事实是这样的吗?代码解析:public abstract class HttpServlet extends GenericServlet { ... public HttpServlet()原创 2013-05-28 12:16:57 · 1394 阅读 · 0 评论 -
用Bridge模式重写了Libvirt框架
前一个项目我们引用了开源软件Libvirt,Libvirt的实现非常不错,可以支持很多的Hypervisor。这两天再把设计模式翻出来看看,发现原来Libvirt是使用了Bridge设计模式,和Service Provider模式还有一定的区别,特用Java提供了框架如下:Connect.java:这个类在Bridge模式中没有对应概念package com.cisco.gen原创 2013-05-21 23:25:30 · 1027 阅读 · 0 评论 -
设计模式7:Decorator
Node.java:package gendwang.cisco.com;public class Node { int value; Node next;}List.java:package gendwang.cisco.com;public interface List { public void addNode(int value); public原创 2013-08-31 18:42:45 · 484 阅读 · 0 评论