设计模式
2020-03-13 本文已影响0人
唔笛plk
1.创建型模式(5种)
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
- 工厂模式(Factory Pattern)(生产车胎的工厂
抽象工厂模式(Abstract Factory Pattern)(生产 车胎工厂、生产发动机工厂、生产座椅工厂等一些列工厂) - 单例模式(Singleton Pattern)
- 建造者模式(Builder Pattern)(可乐、薯条、鸡腿素材,搭配各种套餐)
- 原型模式(Prototype Pattern)(复制克隆实例)
2 结构型模式(8种)
这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
- 适配器模式(Adapter Pattern)(给某种东西另外一种东西功能,实际底层使用的的是另外一种功能,通过继承和依赖实现)
- 桥接模式(Bridge Pattern)(在抽象层面实现依赖具体的实现类,使其新的子类能调用具体实现类的功能、实现抽象层与实现层分离)
- 过滤器模式(Filter、Criteria Pattern)(典型的应用方法就是分组操作,可以根据指定的指标进行分组筛选)
- 组合模式(Composite Pattern)(树形分叉结构,树枝和树叶通过同一实现类,树叶包含树枝,树枝包含树叶,如公司雇员结构)
- 装饰器模式(Decorator Pattern)(与桥接模式类似,同样具体实现交给具体实现类,只是添加新的功能,不影响原有的具体实现类)
- 外观模式(Facade Pattern)(即是把所有的操作接口,放到同一个类中调用,如电脑在开机前,已经把所有的硬件连接好了)
- 享元模式(Flyweight Pattern)(换句话说就是共享对象,在某些对象需要重复创建,且最终只需要得到单一结果的情况下使用,如果在列表中已经存在,则复用)
- 代理模式(Proxy Pattern)(增加中间层,如Windows 里面的快捷方式,真正实现相关功能不是快捷键上的符号)
3 行为型模式(12种)
这些设计模式特别关注对象之间的通信。
- 责任链模式(Chain of Responsibility Pattern)(避免请求发送者与接收者耦合在一起,让多个对象都有可- 能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止,如:成语接龙)
- 命令模式(Command Pattern)(将一个命令封装成一个对象,从而使不同的请求对客户进行参数化如股票操作员,对买家和卖家实现对象参数化,接受卖家和卖家命令 股票的卖家和卖家)
- 解释器模式(Interpreter Pattern)(定义规则)
- 迭代器模式(Iterator Pattern)(定义接口:hasNext, next)
- 中介者模式(Mediator Pattern)(中心论 聊天室)
- 备忘录模式(Memento Pattern)(另外的列表存储状态)
- 观察者模式(Observer Pattern)(广播)
- 状态模式(State Pattern)(随着状态改变,改变执行方法)
- 空对象模式(Null Object Pattern)(创建为空的对象)
- 策略模式(Strategy Pattern)(事先制定策略,执行中不改变)
- 模板模式(Template Pattern)(在抽象方法中,定义多个之类执行的顺序)
- 访问者模式(Visitor Pattern)(数据结构与数据操作分离,解决稳定的数据结构和易变的操作耦合问题、在数据基础类里面有一个方法接受访问者,将自身引用传入访问)
J2EE 模式
这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。
- MVC 模式(MVC Pattern)
- 业务代表模式(Business Delegate Pattern)
- 组合实体模式(Composite Entity Pattern)
- 数据访问对象模式(Data Access Object Pattern)
- 前端控制器模式(Front Controller Pattern)
- 拦截过滤器模式(Intercepting Filter Pattern)
- 服务定位器模式(Service Locator Pattern)
- 传输对象模式(Transfer Object Pattern)