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++编程中利用设计模式,并结合Qt4框架进行高效的跨平台应用开发。设计模式是软件工程中的重要概念,它们是经过时间和实践验证的解决特定问题的模板...
桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。这种模式在软件工程中被广泛应用于处理组件之间的耦合问题,特别是当需要为同一抽象提供多种实现或者需要独立地改变它们时。 ...
好东西一定得分享,自己现阶段需要好好学习一下QT。C++设计模式--基于Qt4开源跨平台开发框架 完整清晰版中文PDF。好东西而且分数不贵!解压密码qt。
c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--...
《设计模式-Java语言中的应用》这本书无疑是学习这一主题的宝贵资源。 首先,我们要理解设计模式的基本分类。设计模式通常分为三类:创建型模式(如工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式),...
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实现一个审批流程,特别是涉及二级审批的场景。这个压缩包文件包含了一个...
《软件设计模式--填空题+简答题(复习7).rar》这个压缩包文件是一个针对《软件设计模式与体系结构》课程的复习资料,重点涵盖了软件设计中的关键概念和实践。设计模式是软件工程中的一种最佳实践,它代表了在特定上...
大话设计模式 完整设计模式介绍
Java设计模式、程序设计、反射、注解和泛型是Java开发中的核心概念,它们各自在不同的场景下发挥着重要作用,构建出高效、可维护的软件系统。 首先,Java设计模式是面向对象编程中的一种最佳实践,是解决常见问题的...
这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的解决方案的标准化描述,它们在软件工程中起到了重要的作用,帮助开发者创建可维护、可扩展且易于理解...
### C++设计模式精解 #### 一、引言 设计模式是软件工程领域中一个非常重要的话题,它为解决常见的软件设计问题提供了标准化的方法。本书《C++设计模式》聚焦于GoF(Gang of Four)所提出的23种设计模式,并通过...
JAVA-设计模式-结构型模式-装饰模式
JAVA-设计模式-创建型模式-工厂模式
JAVA-设计模式-结构型模式-组合模式
JAVA-设计模式-行为型模式-策略模式
JAVA-设计模式-结构型模式-适配器模式
JAVA-设计模式-结构型模式-代理模式
JAVA-设计模式-结构型模式-桥接模式
JAVA-设计模式-行为型模式-状态模式