文章分类 - 设计模式
设计模式
摘要:jdk动态代理 1.先要有一个接口:Seller卖房的,有一个方法sell()卖房 2.实现上边的接口:知春路有一个卖房的房东,实现seller:ZclSeller 3.代理类:链家地产LjdcProxy 1.实现接口:InvocationHandler 2.重写方法:invoke 4.交易Buye
阅读全文
摘要:1.先看测试类 2.再看装饰者 3.装饰者做的事儿就是调用component里的方法,它自己什么事儿都没做,所以叫装饰模式 装饰模式和代理模式的区别 对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一个 接口。对代理模式来说,代理类(proxy class)和真
阅读全文
摘要:举个例子:比如你要买房,有钱人要卖房,但是你不和卖房的直接接触,你是和中介在探讨,这时候中介就是代理 1.卖房的接口 package dp.proxy; public interface Seller { public void sell(); } seller 2.知春路有个有钱的在卖房 pack
阅读全文
摘要:1.先写Test Apple() a = new Apple(0.3,1);//一个0.3斤、1块钱的苹果 Market.discount(a);//超市打折 Market.sell();//超市卖出 package dp; public class Market { public static v
阅读全文
摘要:所谓的合成模式,就是树关系,枝和叶然后合成一棵树。 在阎宏博士的《JAVA与模式》一书中开头是这样描述合成(Composite)模式的: 合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同
阅读全文
摘要:使用场景: 如果你不想实现一个接口里的所有方法,你就需要缺省适配器模式 分析: 比如一个接口: public interface InterfaceA { public void fun1(); public void fun2(); public void fun3(); public void
阅读全文
摘要:首先什么情况下使用适配器模式呢: 1.系统需要使用现有的类,而此类的接口不符合系统的需要 2.想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。这些源类不一定有很复杂的接口。 3.在设计里,需要改变多个已有的子类的接口,如果使用类的适配器模式,
阅读全文
摘要:ConcreteBuilder builder = new ConcreteBuilder(); Director director = new Director( builder ); director.construct(); Product product = builder.getResul
阅读全文
摘要:多例模式是相对单例模式而言的。单例模式有且仅有一个实例,但是多例模式,顾问思义:允许存在有限个实例。 什么叫“有限个实例”? 就是说:有多少实例,我们是知道的,并不是不可以预知的, 如果一个类的构造函数是public 的,那么在任意地方都可以通过调用构造函数来创建实例,那么这样的实例是我们不能预知的
阅读全文
摘要:工厂模式分为3种: 1.简单工厂模式 2.工厂方法模式 3.抽象工厂模式 1.简单工厂模式 汽车厂生产汽车零件: 1.汽车零件接口(CarPart) 2.轮胎、车门、车玻璃等都实现上边的接口 3.工厂有一个静态方法factory,根据传入的参数,生成相应的汽车零件 public class CarF
阅读全文
摘要:1.好,第一步,我们首先会定义一个打折器,它有一个方法打折 2.商场有不同的商品有不同的打折,要每个商品都要写一个打折么?? 3.问题出现了。。。 好,策略模式出现了 1.首先,一个可以打折的商品的接口,DiscountGoods,需要打折的商品都实现这个接口(例如:Apple) 接口里有一个方法:
阅读全文
摘要:java设计模式之——策略模式1,什么是策略模式?策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。2,策略模式有什么好处? 策略模式的好处在于你可以动态的改变对象的行为。3,设计原则 设计原则是把一个类中经常改变或者将来可能改变的部分提...
阅读全文
摘要:自己的例子:动态代理jdk:HelloWorld接口: HelloWorldImpl HelloWorldHeadler test类 cglib与jdk动态代理的区别就是:jdk版本的必须用接口,而cglib可以用类,也可以用实体类 InvocationHandler:该接口中仅定义了一个方法Obj
阅读全文
浙公网安备 33010602011771号