设计模式
zth1002
这个作者很懒,什么都没留下…
展开
-
java建造者模式(Builder)
建造者模式是把很多功能集中到一个类里面,这个类可以创建很复杂的东西。这样可以简化复杂对象的创建。所以与工厂模式的区别就是:工厂模式关注的是创建单个产品,而建造者模式关注的是创建符合对象的多个部分JDK里面常用到的建造者模式有:java.lang.StringBuilder#append()java.lang.StringBuffer#append()java.sql.Prepare原创 2016-02-17 12:20:57 · 397 阅读 · 0 评论 -
享元模式(Flyweight)
之前看设计模式一直记不住享元模式是什么意思,为了好几我是这样子理解的,享是共享的意思,元是对象的意思,组合起来就是共享对象,即使共享池。当系统对象多的时候,对象进行共享可以减少系统的开销。共享池最好的例子还是JDBC的连接池,想想每个连接的特点,我们不难总结出:适用于作共享的一些对象,他们有一些共有的属性,就拿数据库连接池来说,url、driverClassName、username、passwo原创 2016-02-19 17:18:38 · 613 阅读 · 0 评论 -
组合模式(Composite)
在设计模式中经常看到组合模式,但是经常写代码却不知道自己经常在用组合模式(Composite)看一个菜单实体类例子:public class TreeNode { private String name; private TreeNode parent; private Vector children = new Vec转载 2016-02-19 15:46:49 · 354 阅读 · 0 评论 -
桥接模式(Bridge)
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看看关系图:转载 2016-02-19 15:30:42 · 373 阅读 · 0 评论 -
外观模式(Facade)
外观模式就是一个简单的接口包括组建、接口、抽象类、子系统。外观模式就是为了解决类与类之间的依赖关系,下面是网上盗了一张图package Facade;public class CPU { public void start(){ System.out.println("start cpu"); } public void shudown(){ System.out.p原创 2016-02-19 12:14:28 · 309 阅读 · 0 评论 -
代理模式(Proxy)
代理模式就是对出一个代理类出来,替换原来对象进行一些操作,也可以说是用一个简单的对象来代替一个复杂的或者创建耗时的对象。举两个例子:1、我们在租房子的时候会去找中介,为什么呢?因为你对该地区的房屋信息掌握不够全面2、我们有时候打官司,需要请律师,为什么呢?因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法package Proxy;public interface转载 2016-02-18 14:28:35 · 363 阅读 · 0 评论 -
装饰器模式(Decorator )
装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例package Decorator;public interface Sourceable { public void method();}package Decorator;public class Source implements Sourcea原创 2016-02-18 13:59:33 · 377 阅读 · 0 评论 -
适配器模式
适配器模式(Adapter Pattern),把一个类的接口变换成客户端所期待的另一种接口, Adapter模式使原本因接口不匹配(或者不兼容)而无法在一起工作的两个类能够在一起工作。又称为转换器模式、变压器模式、包装(Wrapper)器模式(把已有的一些类包装起来,使之能有满足需要的接口)。最典型的例子:很多功能手机,每一种机型都自带有从电器,有一天自带充电器坏了,而且市场没有这类型充电器可买了原创 2016-02-18 10:41:40 · 364 阅读 · 0 评论 -
java 单例模式(Singleton)
确保某个对象在jvm中,只实例化一个对象。public class Singleton1 { private static Singleton1 instance = null; private Singleton1(){ } //线程不安全 public synchronized Singleton1 getInstance(){if(instance == n原创 2016-02-17 11:48:03 · 345 阅读 · 0 评论 -
观察者模式(Observer)
观察者模式很好理解,比如邮件订阅和RSS订阅,很多博客或者wiki上面都有RSS图标,当你订阅了该博客主的文章,该博客主添加删除文章的时候,都会通知你。其实很简单,当一个对象变化了,依赖改对象的对象会受到通知,并随之变化。对象之间的关系是一对多原创 2016-02-22 17:58:51 · 438 阅读 · 0 评论