摘要:
装饰模式可以给一个对象动态的添加一些额外的职责(通过装载兄弟类对象的方式)。就增加功能来说,装饰模式比生成子类更加灵活。接下来我举一个例子:Finery类是Person类的子类。BigTrouser类和TShirt类是 Finery类的子类。现在想给BigTrouser类的对象 添加穿TShirt的功能,就要采用装饰模式。先上代码:package com.wjy.decorator;public class Person { private String name; public Person(){ } public Person(String name){ ... 阅读全文
摘要:
解决的办法是:在EntityModel中不用 implements Ibodyinfo。而是实现getAdapter方法:public Object getAdapter(Class adapter){ if(adapter==Ibodyinfo.class) return new BodySource(this); return null; }其中BodySource的代码如下;package com.wjy.understandinterface;public class BodySource implements Ibodyinfo... 阅读全文
摘要:
例如一个EntityModel类拥有很多属性信息:name,age,height,weight。现在如果想使用其中的height和weight,可以定义一个接口Ibodyinfopackage com.wjy.understandinterface;public interface Ibodyinfo {public abstract double getHeight();public abstract double getWeight();}然后让EntityModel类去实现这个接口,就可以像一下这样获得height和weight信息了。Ibodyinfo bodyinfo=new Ent 阅读全文
摘要:
DF对组合模式的说明是这样的:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。DF对装饰模式的说明是这样的:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。个人认为 组合模式 和 装饰模式 很像。都是通过类似于setComposite的方法进行类似于递归的组装。但是 组合模式中的setComposite方法可以多次调用存入List中。而装饰模式只是组装一个对象,即用setComposite装载一个兄弟类的对象。之所以有这样的区别,是因为他们的出发点不同。组合模式是为了组装树形结构,所以使用List存储子节 阅读全文
摘要:
上代码:Person类package com.wjy.adaptable.entity;import com.wjy.adaptable.adaptabler.MainOperator;public class Person implements IAdaptable{ public String name; public int age;public String getName() { return name;}public void setName(String name) { this.name = name;}public int getAge() { re... 阅读全文
摘要:
单例模式理解起来比较简单,顾名思义就是只能有一个实例。DF的定义是这样的: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。实现起来是这样的:package com.wjy.singleton;public class Singleton { private static Singleton instance; private Singleton()//私有的构造函数保证了外界不会使用new来创建它的实例。 { } public static Singleton getInstance()//这个方法是获得本类实例的唯一的全局访问点,设为static使之可以直接用类名调用。 { if(i 阅读全文