设计模式简述

十四.设计模式

1.创建型模式

单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式

2.结构型模式

适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式

3.行为型模式

模板方式模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、接解释器模式、状态模式、策略模式、职责链模式、访问者模式

我用到的:单例、工厂、代理
单例模式:

它确保某一个类在系统中只有一个实例,并自行实例化,同时向外部提供获取这个唯一实例的接口。

特性:

单例类只有一个实例。

单例类必须自己实例化自己。

单例类需要向外提供实例。

代理模式:

①动态代理

实现方式:

1) 为真实类和代理类提供的公共接口或抽象类。(租房)

2) 真实类,具体实现逻辑,实现或继承a。(房主向外租房)

3)  代理类,实现或继承a,有对b的引用,调用真实类的具体实现。(中介)

4) 客户端,调用代理类实现对真实类的调用。(租客租房)

②静态代理

实现方式:

1) 公共的接口(必须是接口,因为Proxy类的newproxyinstance方法的第二参数必须是个接口类型的Class)

2) 多个真实类,具体实现的业务逻辑。

3)  代理类,实现InvocationHandler接口,提供Object成员变量,和Set方法,便于客户端切换。

4) 客户端,获得代理类的实例,为object实例赋值,调用Proxy.newproxyinstance方法在程序运行时生成继承公共接口的实例,调用相应方法,此时方法的执行由代理类实现的Invoke方法接管。

简单工厂模式:

就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。

实现方式:

1)     抽象产品类(也可以是接口)

2)     多个具体的产品类

3)     工厂类(包括创建a的实例的方法)

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部