1:策略模式
三个妙计,一个定囊,一个调用者。
private IStrategy straegy;
public Context(IStrategy strategy){
this.straegy = strategy;
}
public void operate(){
this.straegy.operate();
}
context = new Context(new BackDoor());
context.operate()
一个接口,多个实现类
2:代理模式
关键点:多态,同一个接口。
public interface KindWomen {
public void makeEyesWithMan(); //抛媚眼
public void happyWithMan(); //happy what? You know that!
}
public class PanJinLian implements KindWomen {
public void happyWithMan() {
System.out.println("潘金莲在和男人做那个.....");
}
public void makeEyesWithMan() {
System.out.println("潘金莲抛媚眼");
}
}
public class WangPo implements KindWomen {
private KindWomen kindWomen;
public WangPo(){ //默认的话,是潘金莲的代理
this.kindWomen = new PanJinLian();
}
//她可以是KindWomen的任何一个女人的代理,只要你是这一类型
public WangPo(KindWomen kindWomen){
this.kindWomen = kindWomen;
}
public void happyWithMan() {
this.kindWomen.happyWithMan(); //自己老了,干不了,可以让年轻的代替
}
public void makeEyesWithMan() {
this.kindWomen.makeEyesWithMan(); //王婆这么大年龄了,谁看她抛媚眼?!
}
}
public static void main(String[] args) {
//把王婆叫出来
WangPo wangPo = new WangPo();
//然后西门庆就说,我要和潘金莲happy,然后王婆就安排了西门庆丢筷子的那出戏:
wangPo.makeEyesWithMan(); //看到没,虽然表面上时王婆在做,实际上爽的是潘金莲
wangPo.happyWithMan(); }
}
3:单例模式
public class SingletonPattern {
private static final SingletonPattern singletonPattern= new SingletonPattern();
//限制住不能直接产生一个实例
private SingletonPattern(){
}
public synchronized static SingletonPattern getInstance(){
return singletonPattern;
}
}
4:工厂模式:
public static Human createHuman(Class c){
Human human=null;
try{
human = (Human)Class.forName(c.getName()).newInstance();
}catch(InstantiationException e){
}catch (IllegalAccessException e){
}catch (ClassNotFoundException e) {
}
}
重要应用:延迟初始化
5:抽象工厂模式:
一个接口,几个抽象类,然后是几个实现类
public interface Human {}
public abstract class AbstractYellowHuman implements Human {}
public class WhiteFemaleHuman extends AbstractWhiteHuman {}
6:门面模式:
方法的内部封装,暴漏给调用者的只是入口,过程不暴漏
7:适配器模式
一样的作用,不同的接口,不同的实现类。要完成接口的转化对接。
新定义一个接口,继承其中一个,实现另一个接口。
8:模板模式
分享到:
相关推荐
C++设计模式--基于Qt4开源跨平台开发框架
设计模式--代理模式设计模式--代理模式设计模式--代理模式设计模式--代理模式设计模式--代理模式
c#设计模式-C#设计模式c#设计模式-C#设计模式c#设计模式-C#设计模式c#设计模式-C#设计模式
好东西一定得分享,自己现阶段需要好好学习一下QT。C++设计模式--基于Qt4开源跨平台开发框架 完整清晰版中文PDF。好东西而且分数不贵!解压密码qt。
JAVA设计模式--程序设计--反射--注解--泛型
免费提供个人设计模式简易代码,代码结构层次清晰,并且内含基本所有的注释,非常有利于初学者学习设计模式
26种设计模式 ------------------- 26种设计模式 -------------------
c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--...
设计模式精解-GoF-23种设计模式解析--附C++源代码,帮助理解!
12.S8设计模式-1 设计模式简介 13.S8设计模式-2 创建型模式 14.S8设计模式-3 结构型模式 15.S8设计模式-4 行为型模式 16.5 设计模式总结 17.6 二叉树 18.7 算法进阶 2.s8算法1-2 汉诺塔+列表查找 3.s8算法1-3 排序...
java设计模式中的经典教程《设计模式-Java语言中的应用》
(完整word)设计模式-软件体系结构-实验6-中南大学-软件学院.pdf(完整word)设计模式-软件体系结构-实验6-中南大学-软件学院.pdf(完整word)设计模式-软件体系结构-实验6-中南大学-软件学院.pdf(完整word)设计模式-软件...
java设计模式中的单例模式,而单例模式又分为饿汉模式和懒汉模式
23种设计模式-C_版本.doc 设计模式
设计模式--装饰模式 设计模式--装饰模式 设计模式--装饰模式 设计模式--装饰模式
设计模式--装饰者模式java例子
c++设计模式-创建型模式-工厂方法模式-最简单的源码-qt工程
23种设计模式--适配器模式
设计模式--策略模式java例子