设计模式(一)
本文最后更新于:2020年12月4日 凌晨
简单工厂模式
为什么要有工厂模式?
因为在有很多对象需要集中集中操作的时候,可以减少代码的复用和提高代码的灵活性,具体参考下例。
什么是工厂模式?
1、什么是工厂?
一个专门来创建实例的类叫做工厂,下面是一个简单的例子。
public classs Factory{ //创建工厂类
public static Object CreateBean(Object arg){
//根据参数创造不同的子类,实现多态。
Object ob = null;
switch(arg){
case: arg1{ob = new Object1();}
case: .....
break;
}
}
}
工厂模式的好处有哪些?
提高代码服用性和灵活性,工厂模式解决了对象创建问题。
Tips:
聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但是B对象不是A对象的一部分。。
封装的好处在于将逻辑处理分离开来,到达高复用、高扩展、高灵活性的的目的。
策略模式
以解决商场收银员业务为背景。
什么是策略模式?
策略模式:它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式可以让算法的变化不会影响带到适应算法的客户。
策略模式的使用。
在什么时候使用策略模式呢?
策略模式是用来封装算法的,在实践中我们发现可以用它来封装几乎任何类型的规则。只要在不同的时间使用不同的规则,就可以使用策略模式来封装这种变化的可能性。在基本的策略模式中,选择具体的算法实现是由客户端来选择并转给上下文对象来处理的,但是这并没有减少客户端需要判断的压力。简单工厂模式与策略模式的结合可以将选择的任务交给上下文对象。
Tips:
面向对象编程并不是类越多越好,分类的目的是分装,分类的基础是抽象,分类的依据是具有相同的属性和操作。
封装变化点是面向对象一种重要的思想。
单一职责模式
什么是职责单一模式?
就一个类而言,应该只有一个引起它变化的原因。
什么情景下使用职责单一模式?
如果一个类承担的职责过多,就相当于这些职责耦合在一起。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。软件设计真正要做的内容是发现职责并且把这些职责进行分离。如果能够想到多于一个的动机去改变这个类,那么这个类就具有多于一个的职责。
Tips:
开放封闭原则
定义
对于更改是封闭的,对于扩展是开放的。
应用
当需求发生改变时,需要的考虑的是通过增添代码来实现需求,而不是通过修改。例如在加法系统的基础上要实现减法,可以先将计算进行抽象,然后通过多态实现加法和减法。在此后的变更中就可以通过抽象类来扩展乘法和其他运算了。
在软件设计中这种不可以修改,但是可以扩展的思想是一种重要的思想。
依赖倒转原则
定义:
抽象不应该依赖于细节,细节应该依赖于抽象。
简而言之就是针对接口编程,而不是对实现编程。
原则:
A、高层模块不应该依赖于底层模块。两个都应该依赖抽象。
B、抽象不应该依赖于细节,细节应该依赖于抽象。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!