设计模式
wjy320
这个作者很懒,什么都没留下…
展开
-
适配器模式1
上代码: Person类 package com.wjy.adaptable.entity; import com.wjy.adaptable.adaptabler.MainOperator; public class Person implements IAdaptable{ public String name; public int age; publ...2014-01-06 16:34:00 · 125 阅读 · 0 评论 -
设计模式——适配器模式
以前写过一些设计模式的博客,今天回过头看了看,竟然全是代码。还是不太好理解,毕竟这些博客都是从博客园搬家过来的,有些格式都出错了。今天准备重新写一次适配器模式,采用好理解的方式。在书上看了一个例子,感觉讲的很不错,贴出来分享一下: 看看这三张照片应该对适配器模式有一个完整的认识了(我将这三张照片对应的代码上传到附件里了(AdapterPatternA--...原创 2014-04-09 10:23:52 · 185 阅读 · 0 评论 -
Enum实现单例模式
package com.wjy.effective; public enum Singleton { INSTANCE; private int numa; private int numb; public int add(int a,int b){ numa=a; numb=b; ...2014-01-06 16:41:00 · 80 阅读 · 0 评论 -
组合模式 Composite
DF对组合模式的说明是这样的:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 DF对装饰模式的说明是这样的:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 个人认为 组合模式 和 装饰模式 很像。都是通过类似于setComposite的方法进行类似于递归的组装。但是 组合模式中的setComp...2014-01-06 16:35:00 · 84 阅读 · 0 评论 -
用适配器模式解决接口的不足
解决的办法是:在EntityModel中不用 implements Ibodyinfo。而是实现getAdapter方法: public Object getAdapter(Class adapter){ if(adapter==Ibodyinfo.class) return new BodySource(this); retu...2014-01-06 16:35:00 · 101 阅读 · 0 评论 -
装饰模式 Decorator
装饰模式可以给一个对象动态的添加一些额外的职责(通过装载兄弟类对象的方式)。就增加功能来说,装饰模式比生成子类更加灵活。 接下来我举一个例子: Finery类是Person类的子类。 BigTrouser类和TShirt类是 Finery类的子类。 现在想给BigTrouser类的对象 添加穿TShirt的功能,就要采用装饰模式。 先上代码: package com.wjy.de...2014-01-06 16:35:00 · 72 阅读 · 0 评论 -
简单工厂模式
简单工厂模式很容易理解,在项目中用到了一个这样的例子。 AbstractUMLConnectionModel是一个抽象的父类,它的子类包括:GeneralizationModel,RealizationModel,DependencyModel,AggregationModel,CompositeModel。 那么好,接下类根据需要我们使用简单工厂实现获得需要的子类对象。(又是父类引用指向子...2014-01-06 16:35:00 · 96 阅读 · 0 评论 -
策略模式 Strategy
public Context(String strategyType) { switch(strategyType) { case "算法A": strategy=new ContextStrategyA(); break; case "算法B": strategy=new ContextStrategyB(...2014-01-06 16:35:00 · 176 阅读 · 0 评论 -
工厂方法模式
DF对工厂方法模式的定义是:定义了一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 工厂方法模式 对 简单工厂模式的改变在:将switch中的判断变成了一个个子类。 这样做虽然增加了很多类,但是它是有好处的。因为工厂方法更利于扩展,添加功能只需创建子类即可无需修改switch中的代码。 例如: interface IFactory ...2014-01-06 16:35:00 · 69 阅读 · 0 评论 -
代理模式 Proxy
应用场景 例如:假设有一组对象都实现同一个接口,实现同样的方法,但这组对象中有一部分对象需要有单独的方法,传统的笨办法是在每一个应用端都加上这个单独的方法,但是代码重用性低,耦合性高。 如果用代理的方法则很好的解决了这个问题。 代码示例 示例说明 假设有一个Italk接口,有空的方法talk()(说话),所有的people对象都实现(implements)这...2014-01-06 16:35:00 · 105 阅读 · 0 评论 -
简单工厂 和 策略模式的区别
简单工厂 和 策略模式很像,二者都是采用 处理类聚合抽象类(父类)的方法。二者的区别是(以下两句话很重要): 简单工厂是 采用静态的类方法,通过传入的参数,返回参数所指定的所需要的子类(实际上是返回的是父类引用(父类引用指向子类对象))。 策略模式是 通过处理类的构造方法以参数的形式传入子类对象,然后再在处理类中写一个函数用来封装父类和子类共有的处理方法(strategy.Algo())。 ...2014-01-06 16:35:00 · 103 阅读 · 0 评论 -
单例模式 Singleton
单例模式理解起来比较简单,顾名思义就是只能有一个实例。 DF的定义是这样的: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 实现起来是这样的: package com.wjy.singleton; public class Singleton { private static Singleton instance; private Singleton()//私有的构造函数保证了...2014-01-06 16:34:00 · 80 阅读 · 0 评论 -
设计模式——装饰模式
看了之前写的那篇博客,感觉有点长而且不容易懂。所以,打算最近将有关设计模式的一些博客慢慢换掉。好了言归正传,说到装饰模式,是一个对组合完美利用的模式。最经典的例子,莫过于卖咖啡,怎么加糖的问题了。相信大家都知道,就不啰嗦了。 为了灵活的组合出各式各样的咖啡,使用装饰模式最合适不过了。 首先定义一个借口,是所有产品的接口:包括价格和描述 ...原创 2014-04-09 10:47:42 · 83 阅读 · 0 评论