软件构造第四次学习博客——java设计模式总结

软件构造第四次学习博客——java设计模式总结

一、设计模式原则
1.开放封闭原则:对扩展开放,对修改封闭,意即程序拓展时不要动原有的代码;
2.LSP原则:任何基类可以出现的地方,子类一定可以出现;
3.依赖倒置原则:使用接口,依赖于抽象而不是具体;
4.接口隔离原则:为了解耦,使用多个相互隔离的接口;
5.迪米特法则:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立;
6.CRP法则:尽量使用合成/聚合的方式,而不是使用继承。
在这里插入图片描述
二、java设计模式
1.创建型模式——在创建对象的过程中尽量隐藏创建细节,不直接使用new
工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
单例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
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)

工厂模式
现在要创建一些对象,他们都实现了某个接口或者继承了某个类。我们不在需要的时候使用new操作符,而是把创建的操作让一个“工厂类”完成,我们在需要新对象时只需要把需要的东西的名字以参数形式传递给工厂类就行了,而不用去管怎么创建的。

抽象工厂模式
在工厂模式中,一个工厂类只生产实现某个接口或者继承了某个类的对象,也就是具体工厂生产具体对象,如果建立一个抽象工厂类和若干个具体工厂,每个具体工厂负责产生一类对象,就成了抽象工厂模式。就是一个抽象工厂类可以生产多种类型的对象,具体每种类型的对象怎么生成,要用一个专门的工厂类来决定。

适配器模式
一个类和另一个类有一些相似的操作,但是它们的形式是不一致的,需要有一个东西把它包裹起来,变成另一种比较合适的形式。

装饰器模式
一个类有一些方法,但是我们想让这些方法调用的时候多执行一些东西,于是可以定义一个装饰器的类,它和被修饰的类同时一个类的子类或是一个接口的实现,然后将这个被修饰的类委托给这个装饰器类,如果想使用这个修饰后的方法,只需要调用这个修饰器的方法就可以了。

代理模式
我想访问一个对象,但是这个对象出于多种考虑,比如细节复杂、需要控制访问、隐藏细节等,不能让别人直接使用,必须要使用一个中间层性质的代理类,对这个对象的所有访问都由这个代理类来完成。

状态模式
一个类,他的一些操作的具体过程是根据它当前的状态来决定的,而这个状态取决于当前环境的上下文。

策略模式
对于一个操作,实现它的算法有很多,我把这些算法每个都建立一个类,实现那个方法类的接口,在需要执行这个操作的地方,要运用某个算法,只需要把那个算法对应的类传进去就行了。

迭代器模式
一个类,里面有一组元素,要按照某个次序一次访问这些元素,于是单独设立一个迭代器,无需暴露内部复杂实现,直接告诉你当前是哪个元素、下一个是哪个元素,就可以按照这种特定次序遍历这些元素了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值