设计模式学习(Day2)

目录

一.策略模式

        利用泛型

        实例思路

拓展

        1,什么是接口,接口的概念

        2,什么是多态,如何理解多态

        3.面向对象思想和优点


一.策略模式

(封装的是做一件事的不同执行方式)

利用泛型

实例思路

1.一个功能接口,内含需要实现的方法的

2.一个功能类,内含方法可以利用泛式针对不同的自定义类用同一个方法实现比较等其他目标功能

3.一个自定义类的功能类,对接口内的方法进行重载@override,该功能类是main里所实例化的类。

举例:

mainSortCatComparator(接口)CatComparator
实例化Cat类数组具体排序方法自定义类,含泛式内含compara方法重写compare方法
//main
Cat[] a = { new Cat(3, 3),new Cat(5, 5)};

Sorter<Cat> sorter = new Sorter<>();
sorter.sort(a, new CatComparator());

System.out.println(Arrays.toString(a));

//Sorter
public class Sorter<T>{
    public void sort{
        for(int i<0; i<arr.length-1; i++){
            //...
            minPos = comparator.compara(arr[j] ,arr[minPos])==-1 ? j : minPos;
        }
        swap(arr , i , minPos)
    }
    void swap(T[] arr, int i , int j ){
        T temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}

//Comparator(接口)
public interface Comparator<T>{
    int compara(T o1, T o2);
}

//CatComparartor
public class CatComparator implements Comparator<Cat>{
    @override
    public int compara(Cat o1, Cat o2){
        if ... return -1;
        else if ...  return 1;
        else ... return 0;
    }
}

拓展

1,什么是接口,接口的概念

unity中什么情况下用得上接口,应该怎么理解接口呢?

2,什么是多态,如何理解多态

Unity中C#多态特性介绍

多态性往往表现为"一个接口,多个功能"

静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的

静态多态性:函数重载&&运算符重载

动态多态性:抽象类 && 虚方法

(1)使用关键字 abstract 创建抽象类

  • 不能创建一个抽象类的实例。
  • 不能在一个抽象类外部声明一个抽象方法。
  • 通过在类定义前面放置关键字 sealed,可以将类声明为密封类。当一个类被声明为 sealed 时,它不能被继承。抽象类不能被声明为 sealed。

(2)使用虚方法

使用关键字 virtual 声明的。虚方法可以在不同的继承类中有不同的实现。对虚方法的调用是在运行时发生的

3.面向对象思想和优点

三大特性五大原则

易维护、易复用、易扩展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值