黑马程序员java自学总结之--模式
2014-12-20 15:11
357 查看
------- android培训、java培训、期待与您交流! ----------
装饰者模式:
当想要对已有的对象进行功能增强时,
可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。
那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象。
并基于被装饰的对象的功能,提供更强的功能。
在java中的缓冲区的流的类,使用的就是装饰者模式的思想。
单例设计模式:
最先接触是老师讲的饿汉式和懒汉式:
这个类的设计思想:只可以产生一个类的对象,这个类中封装好构造函数,并且这个类可以返回这个实例的对象,我们windows的回收站都是单例设计模式的例子
饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变
懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的
推荐使用第一种
策略模式:
策略模式定义
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
引进策略模式
策略模式是对算法的包装,是把使用算法的责任和算法本身分割开,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:准备一组算法,并将每一个算法封装起来,使得它们可以相互交换。策略模式的简略图如下图所示。
策略模式的结构
策略又称作政策模式。策略模式的实例结构如下图所示:
这个模式涉及到的三个角色:
环境(Context)角色:持有一个Strategy类的引用。
抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所以的具体策略类所需的接口。
具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。
模板方法模式:
我的模板方法里面设定好执行的逻辑,然后其中的各个小的操作可以放到子类中去实现,事先确定好算法。
装饰者模式:
当想要对已有的对象进行功能增强时,
可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。
那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象。
并基于被装饰的对象的功能,提供更强的功能。
class Person { public void chifan() { System.out.println("吃饭"); } } class SuperPerson { private Person p ; SuperPerson(Person p) { this.p = p; } public void superChifan() { System.out.println("开胃酒"); p.chifan(); System.out.println("甜点"); System.out.println("来一根"); } } class PersonDemo { public static void main(String[] args) { Person p = new Person(); //p.chifan(); SuperPerson sp = new SuperPerson(p); sp.superChifan(); } }
在java中的缓冲区的流的类,使用的就是装饰者模式的思想。
单例设计模式:
最先接触是老师讲的饿汉式和懒汉式:
这个类的设计思想:只可以产生一个类的对象,这个类中封装好构造函数,并且这个类可以返回这个实例的对象,我们windows的回收站都是单例设计模式的例子
//饿汉式: public class Singleton{ private static Singleton singleton = new Singleton (); private Singleton (){} public Singleton getInstance(){return singletion;} } //懒汉式: public class Singleton{ private static Singleton singleton = null; public static synchronized synchronized getInstance(){ if(singleton==null){ singleton = new Singleton(); } return singleton; } }比较:
饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变
懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的
推荐使用第一种
策略模式:
策略模式定义
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
引进策略模式
策略模式是对算法的包装,是把使用算法的责任和算法本身分割开,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:准备一组算法,并将每一个算法封装起来,使得它们可以相互交换。策略模式的简略图如下图所示。
策略模式的结构
策略又称作政策模式。策略模式的实例结构如下图所示:
这个模式涉及到的三个角色:
环境(Context)角色:持有一个Strategy类的引用。
抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所以的具体策略类所需的接口。
具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。
模板方法模式:
我的模板方法里面设定好执行的逻辑,然后其中的各个小的操作可以放到子类中去实现,事先确定好算法。
相关文章推荐
- 黑马程序员_Java第19天知识总结_缓冲区_装饰设计模式_键盘录入_源和目的_Properties
- 黑马程序员:Java基础总结----静态代理模式&动态代理
- 黑马程序员 Java自学总结十五 GUI
- 黑马程序员-Java基础-多线程之单例模式总结
- 黑马程序员 Java自学总结十九 Java高新技术第二天
- 黑马程序员:Java基础总结----单例设计模式
- 黑马程序员 Java自学总结七 面向对象三个特征之继承
- 黑马程序员 Java自学总结十六 网络编程
- 黑马程序员 Java自学总结九 内部类
- 黑马程序员 Java自学总结二十二 张老师7K面试题之银行业务调度系统
- 黑马程序员_java基础复习之十常用设计模式总结
- 黑马程序员 Java自学总结五 数组
- 黑马程序员 Java自学总结一 Java语言的基础知识
- 黑马程序员 Java自学总结十七 正则表达式
- 黑马程序员 Java设计模式总结
- 黑马程序员:Java基础总结----装饰设计模式
- 黑马程序员 Java自学总结三 Java语句
- 黑马程序员 Java自学总结四 函数
- 黑马程序员 Java自学总结二十 Java高新技术第三天
- 黑马程序员 Java自学总结十八 Java高新技术第一天