摘要:
一、创建型模式:都是用来帮助我们创建对象的!(关注对象的创建过程) 1.单例模式 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。 2.工厂模式("Gof book"中把工厂方法与抽象工厂分为两种模式,所以创建型模式共为五种,这里只是为了方便整理,合在了工厂模式中) -简单工厂模式 用来 阅读全文
posted @ 2021-06-30 23:21
狂热搬砖家
阅读(2089)
评论(0)
推荐(0)
摘要:
一、UML基本介绍 二、UML图 三、UML类图 1.依赖关系 2.泛化关系(继承关系) 3.实现关系 4.关联关系 5.聚合关系 6.组合关系 UML类图图示样例:参考自《大话设计模式》 在idea中,以上所有关系在puml的写法如下: 阅读全文
posted @ 2021-06-30 22:58
狂热搬砖家
阅读(139)
评论(0)
推荐(0)
摘要:
一、合成复用原则介绍 二、合成复用原则引入 UML类图: 三、七大设计原则核心思想 阅读全文
posted @ 2021-06-30 22:24
狂热搬砖家
阅读(75)
评论(0)
推荐(0)
摘要:
一、迪米特法则介绍 二、迪米特法则引入 1.方式一(违反了迪米特法则) 代码及解析:在SchoolManager类的printAllEmployee方法中CollegeEmployee类 是以局部变量方式出现,这提升了两个类之间的耦合度,违反了迪米特法则。 public class Demeter1 阅读全文
posted @ 2021-06-30 22:14
狂热搬砖家
阅读(60)
评论(0)
推荐(0)
摘要:
一、开闭原则介绍 二、开闭原则引入 1.方式一(违反了开闭原则) UML类图: 代码及解析:这里所有Shape类的子类为提供方,GraphicEditor类为使用方。当需要增加一个"三角形提供方"的时候,除了要新增一个三角形类,还要在使用方中新增type判断分支以及drawTriangle方法。这违 阅读全文
posted @ 2021-06-30 21:48
狂热搬砖家
阅读(112)
评论(0)
推荐(0)
摘要:
一、里氏替换原则介绍 二、里氏替换原则引入 1.方式一(子类重写了父类的方法,违反了里氏替换原则) public class Liskov { public static void main(String[] args) { A a = new A(); System.out.println("11 阅读全文
posted @ 2021-06-30 21:09
狂热搬砖家
阅读(97)
评论(0)
推荐(0)
摘要:
一、依赖倒转原则介绍 二、依赖倒转原则引入 1.方式一(传统方式) public class DependencyInversion { public static void main(String[] args) { Person person = new Person(); person.rec 阅读全文
posted @ 2021-06-30 20:47
狂热搬砖家
阅读(65)
评论(0)
推荐(0)
摘要:
一、接口隔离原则介绍 二、接口隔离原则引入 1.方式一(违反了接口隔离原则) UML类图: 代码及解析:对A类来说,B类从接口中实现的4、5方法是多余的。对C类来说,D类从接口中实现的2、3方法是多余的。所以违反了接口隔离原则。 //接口 interface Interface1 { void op 阅读全文
posted @ 2021-06-30 20:31
狂热搬砖家
阅读(73)
评论(0)
推荐(0)
摘要:
一、单一职责原则介绍 二、单一职责原则引入 1.方式一(违反了单一职责原则) 解析:摩托车、汽车是公路上运行的,但飞机并不是在公路上运行的。 public class SingleResponsibility1 { public static void main(String[] args) { / 阅读全文
posted @ 2021-06-30 19:34
狂热搬砖家
阅读(54)
评论(0)
推荐(0)
摘要:
阅读全文
posted @ 2021-06-30 18:58
狂热搬砖家
阅读(50)
评论(0)
推荐(0)
摘要:
一、归并排序介绍 二、归并排序图解 三、归并排序代码实现(Java) public class MergetSort { public static void main(String[] args) { //int arr[] = { 8, 4, 5, 7, 1, 3, 6, 2 }; // //测 阅读全文
posted @ 2021-06-30 17:32
狂热搬砖家
阅读(43)
评论(0)
推荐(0)
摘要:
一、快速排序介绍 二、快速排序图解 三、快速排序代码实现(Java) public class QuickSort { public static void main(String[] args) { //int[] arr = {-9,78,0,23,-567,70, -1,900, 4561}; 阅读全文
posted @ 2021-06-30 17:29
狂热搬砖家
阅读(71)
评论(0)
推荐(0)
摘要:
一、希尔排序介绍 二、希尔排序图解 三、希尔排序代码实现(Java) public class ShellSort { public static void main(String[] args) { //int[] arr = { 8, 9, 1, 7, 2, 3, 5, 4, 6, 0 }; / 阅读全文
posted @ 2021-06-30 17:24
狂热搬砖家
阅读(66)
评论(0)
推荐(0)
摘要:
一、插入排序介绍 二、插入排序图解 三、插入排序代码实现(Java) public class InsertSort { public static void main(String[] args) { //int[] arr = {101, 34, 119, 1, -1, 89}; // 创建要给 阅读全文
posted @ 2021-06-30 17:12
狂热搬砖家
阅读(58)
评论(0)
推荐(0)
摘要:
一、选择排序介绍 二、选择排序图解 三、选择排序代码实现(Java) public class SelectSort { public static void main(String[] args) { //int [] arr = {101, 34, 119, 1, -1, 90, 123}; / 阅读全文
posted @ 2021-06-30 17:06
狂热搬砖家
阅读(64)
评论(0)
推荐(0)
摘要:
一、冒泡排序介绍 二、冒泡排序图解 三、冒泡排序代码实现(Java) public class BubbleSort { public static void main(String[] args) { // int arr[] = {3, 9, -1, 10, 20}; // // System. 阅读全文
posted @ 2021-06-30 16:51
狂热搬砖家
阅读(52)
评论(0)
推荐(0)
摘要:
一、基数排序介绍 二、基数排序图解 1.第一轮排序 2.第二轮排序 3.第三轮排序 4.排序完成 注意:这里排序的轮数由数组中最大数的"位数"决定。 三、基数排序代码实现(Java) public class RadixSort { public static void main(String[] 阅读全文
posted @ 2021-06-30 16:39
狂热搬砖家
阅读(229)
评论(0)
推荐(0)
摘要:
一、方法的多态 二、对象的多态(重要) 对象多态的案例: 1.动物类 2.狗类继承动物类 3.猫类继承动物类 4.多态测试 三、多态的注意事项和细节(重要) 1.向上转型 2.向下转型 3.属性 阅读全文
posted @ 2021-06-30 11:14
狂热搬砖家
阅读(41)
评论(0)
推荐(0)

浙公网安备 33010602011771号