设计模式 java demo

难免有错,有错请指正,立马修订。

代码地址:github地址

一、创建型模式(5)

1、工厂方法模式

2、抽象工厂模式

3、单例模式

4、建造者模式

5、原型模式

二、结构型模式(7)

6、适配器模式

1)类适配

1、uml        

2、代码

public class Source {

    private final static Log logger= LogFactory.getLog(Source.class) ;

    public void editTextFile() {//text 文件编辑
        logger.info("a text file editing");
    }
}
public interface TargetAble {

    void editTextFile();

    void editWordFile();
}
public class Adapter extends Source implements TargetAble {

    private final static Log logger = LogFactory.getLog(Adapter.class);

    @Override
    public void editWordFile() {
        logger.info("a word file editing");
    }
}

 3、测试

public static void main(String[] args) {
    TargetAble target = new Adapter();
    target.editTextFile();
    target.editWordFile();
}

  4、结果

17:28:14.277 [main] INFO com.augtsy.pattern.adapter.clazz.Source - a text file editing
17:28:14.279 [main] INFO com.augtsy.pattern.adapter.clazz.Adapter - a word file editing
 

 2)对象适配

1、uml

2、代码

资源类Source不变、目标接口类TargetAble不变

对象适配器修改

public class ObjectAdapter implements TargetAble {

    private final static Log logger = LogFactory.getLog(ObjectAdapter.class);

    private final Source source;

    public ObjectAdapter(Source source) {
        super();
        this.source = source;
    }

    @Override
    public void editTextFile() {
        this.source.editTextFile();
    }

    @Override
    public void editWordFile() {
        logger.info("a word file ed ting ");
    }
}

3、测试结果

17:38:48.413 [main] INFO com.augtsy.pattern.adapter.object.Source - a text file editing
17:38:48.415 [main] INFO com.augtsy.pattern.adapter.object.ObjectAdapter - a word file ed ting

3)接口适配

7、装饰器模式

8、代理模式

9、桥接模式

10、外观模式

11、组合模式

12、享元模式

三、行为型模式(11)

13、策略模式

14、模板方法模式

15、观察者模式

16、责任链模式

17、访问者模式

18、中介者模式

19、迭代器模式

20、命令模式

21、状态模式

22、备忘录模式

23、解释器模式

文章待。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tang_sy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值