设计模式(一)

本文最后更新于: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 协议 ,转载请注明出处!