设计模式概念

1.工厂模式:
解决的问题:对象的实例过多不便于维护。
一句话总结:方法代替new关键字。
生活中的例子:农场。
模式结构:定义两个子类继承父类,然后再测试的时候不要用new ,用一个方法代替。
项目中时怎么用的:工资统计,在线人数。
Jdk中的应用: util 中的DateFormat 。
2.单例模式:
解决的问题:线程不安全或者被多次实例,保证了对象的唯一性。
一句话总结:头到尾一个实例。
生活中的例子:一个篮球场上只有一个球。
模式结构:a懒汉式: 等对象调用的时候才会创建实例。
B饿汉式:一加载对象不管有没有调用都创建实例。
在类加载的时候定义一个private的构造方法,防止被人new和public static 类变量,因为要给人调用所以必须写个static synchronized修饰的方法,然后再方法中判断该对象有没有被实例,如果实例直接返回该实例,否则进行实例。
项目中时怎么用的: 连接数据库 使用的就是单例模式。
框架中和JDK中的应用:Runtime。
3.策略模式:
解决的问题:实现一种功能可以有不同的方法。
一句话总结:就是做一件事有不同的方式做到。
生活中的例子: 肚子饿了可以吃饭、可以吃面条、可以吃干粮 。
模式结构:定义一个接口,声明不同的子类实现它重写里面的方法,在测试类new它实例调用。
项目中时怎么用的:操作数据库,我们可以用jdbc,ibatis,hiberdate来操作。
框架中和JDK的应用:list---linklist和arraylist 。
4.模板模式:
解决的问题:主要解决了代码重复性和结构相似的问题。
一句话总结:父类定义流程子类来实现。
生活中的例子:总部制定一套流程,分公司实现流程。
模式结构:定义一个抽象类,在该类中定义好系统的执行流程,具体的流程实现可以交由子类去实现。
项目中时怎么用的:在dao 层写一个公共方法,然后去调用它。
框架中的应用:spring 的JdbcTemplate 。
5.命令模式:
解决的问题:一个对象行为复杂。
一句话总结:将请求操作封装成一个个的对象。
生活中的例子:手机。
模式结构:声明二个子类实现父类的execute(), 二个子类里写个构造方法初始化命令类 调用里面的命令方法 ,最后在测试类中new它们的实例调用里面方法。
项目中时怎么用的:ant。
框架中的应用:struts 中的action,通过execute 执行命令。
6.代理模式:
解决的问题:客户端不能直接调用具体目标对象时。
一句话总结:一件事交给别的代理对象来做。
生活中的例子:产品代理商。
模式结构:声明二个类实现同一个接口,重写里面的方法,在代理的方法中调用被代理的方法,在测试类new它的实例并调用。
项目中时怎么用的:日记系统,我们把日记写好后点击提交就可以了。
框架中的应用:mvc就是一个代理模式 ,Spring的MVC中的控制层交给Struts来代理。
7.职责链模式:
一句话总结:每个请求按流水线执行。
生活中的例子:火炬传递、接力赛跑、家里的传家之宝。
解决的问题:一系列复杂请求问题。
模式结构:分二种方式:
定义一个抽象类在该类里定义一个抽象方法和对象 生成get(),set();
写个普通方法给子类调用判断是否还有流程了,声明不同的子类继承这个抽象类重写里面的方法 调用用那个普通方法,最后在测试类的时候new它们的实例,A类 放到 B类 B类放到C类,这样形成一个链表的形式调用那个方法。
定义一个接口,不同的子类实现该接口重写里面的方法,写个类把每子类增加到List中,然后把List放到iterator进行迭代,写个普通方法给子类调用,该方法 指向下一个对象调用其方法。
项目中时怎么用的:用户发送请求 到 验证 在到 execute()。
框架中与JDK的应用:Util中的linkList
8.观察者模式:
一句话总结:一对多的依赖关系。
生活中的例子:股市情况 通过电视、手机、网上了解到。
解决的问题:解决了对象之间的一对多依赖关系。一个对象发生改变时,跟它有关对象的变化问题。
模式结构:声明一个被观察者的接口,不同的观察者类实现它重写里面的方法,然后声明一个类在该类写add()、remover()方法 update()在这个方法中把所有观察者放入List中 进行迭代,最后在测试类的时候调用该方法。
项目中时怎么用的:炒股系统,根据不同的方式把股市的情况发布到网上、电视、
框架中与JDK的应用:ATW 事件。
9.适配器模式:
一句话总结: 将一个类的接口转换成客户希望的另外一个接口。
生活中的例子:手机数据线,可以根据数据线配对不同的手机,也可以连接电脑充电。
解决的问题: 实现了代码的兼容性。
模式结构:它有两种实现方式,类适配器和对象适配器,使用类适配器就是适配器继承目标类,直接调用它的方法就可以了。对象适配器就是在适配器类里面定义一个目标类的对象字段,然后通过这个对象调用目标类的法。
项目中时怎么用的:就像我们使用一个中间类,然后我们去调用它。
框架中与JDK的应用:Io中的InputStreamReader 从是字节流通向字符流的桥梁 ,
outputStreamWriter 是字符流通向字节流的桥梁 。
10.状态模式:
一句话总结: 不同的状态产生不同的行为。
生活中的例子:QQ 登录、离线、隐身、注销。
解决的问题:判断条件过多 。
模式结构:首先我们声明一个接口,然后定义一系列的状态类去实现这个结构并重写里面的方法,然后再写一个中间类类方法里面声明接口,并调用接口里面的方法。最后在测试类里面new那个中间类并在接口方法里面new子类的实例。
项目中时怎么用的:我们使用线程,有启动状态,等待状态,死亡状态。
框架中与JDK的应用:hibernate 中pojo的三种状态,瞬时状态、持久化状态、托管状态。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值