设计模式类型
–1、创建型模式
工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
单例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
——–
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,
而不是使用 new 运算符直接实例化对象。这使得程序在判断针对
某个给定实例需要创建哪些对象时更加灵活。
–2、结构型模式
适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
过滤器模式(Filter、Criteria Pattern)
组合模式(Composite Pattern)
装饰器模式(Decorator Pattern)
外观模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
———
这些设计模式关注类和对象的组合。继承的概念被用来组合接口和
定义组合对象获得新功能的方式。
–3、行为型模式
责任链模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
观察者模式(Observer Pattern)
状态模式(State Pattern)
空对象模式(Null Object Pattern)
策略模式(Strategy Pattern)
模板模式(Template Pattern)
访问者模式(Visitor Pattern)
———
这些设计模式特别关注对象之间的通信。
···J2EE 模式
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)
———
这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。
一、单一职责原则:
如果一个类承担的责任过多,就等于把这些职责耦合在一起,一个职责的变化可能会
削弱或者抑制这个类执行其他职责的能力,这种耦合是一种脆弱的设计,可能一种变化引起
想象不到的灾难性的破坏。
二、开放-封闭原则
对扩展是开放的,对修改是封闭的。(能够用扩展做的事坚决不修改)
开放-封闭原则是面向对象设计核心所在。遵循这个原则可以带来 可维护、
可扩展、可复用、灵活性好。开发人员应仅对 程序中呈现出频繁变化的那部分
做出抽象,相反地,对程序中每部分都刻意地进行抽象并不是一个好的选择,
拒绝不成熟的抽象和抽象本身一样重要。
三、依赖倒转原则
原则:
A:高层模块不应该依赖底层模块,两个都应该依赖抽象。
B:抽象不应该依赖细节,细节应该依赖抽象。
什么是高层模块依赖低层模块呢?
项目一般都会访问数据库,所以把访问数据库的代码封装成了函数,每次做新项目的时候
可以直接去调用这些函数,这就是高层模块依赖低层模块。
依赖,关联 实现
高层模块 -------------> 接口或抽象类 <--------- 低层模块
四、里氏替换原则:子类型必须具备可以替换它们的父类型
–>只有当子类可以替换到父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类可以
在父类基础上增加新的行为。
–>正是由于子类型的可替换性才使得父类型的模块在无须修改的情况下就可以扩展,不然就无法实现
扩展开发。
~~~~~~~~~~~~~~~~装饰模式~~~~~~~~~~~~~~~~~
装饰模式:动态地给一个对象增加一些额外的职责(包装原来的类),对于增加功能来说,装饰模式比生成子类更加灵活
装饰模式是继承的一个替代模式。
~~~~~~~~~~~~~~~~装饰模式~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~工厂方法模式~~~~~~~~~~~~~~~~~
该模式一定要和简单工厂区分开,它们不是同一种模式,工厂方法模式在简单工厂模式上
进行了升级。简单工厂模式违背了开放-封闭原则,而工厂方法模式就是解决该缺陷,但同时
也增加类的数量。
~~~~~~~~~~~~~~~~工厂方法模式~~~~~~~~~~~~~~~~~