1.什么是设计模式
- 前辈总结开发设计方法 不同的设计模式有不同使用场景
2. 为什么要学习设计模式
3. 23中设计模式背后的设计原则(背后的原则 一个分字)
- 单一职责: 一个类 一个方法 尽量只做一件事
- 开闭原则 :对修改关闭 对扩展开放
- 接口隔离原则:一个接口把很多功能集合在一起,导致有些类必须要实现它不需要的方法。所以将一个接口的多个接口 可按照功能和职责划分为多个接口(接口分开)
- 依赖倒置原则:上层依赖于抽象 不能依赖于具体的底层(上下层分开)
- 最少知道原则:一个类尽量和自己的朋友通信。所谓的朋友指类的成员变量 返回值 方法参数。
- 里氏替换原则:
- 组合优于继承:
package com.xiaoliang.yilaidaozhi.navite;
public class yilaidaozhi {
public static void main(String[] args) {
Person person = new Person();
person.feed(new Cat());
person.feed(new Tiger());
}
}
class Person {
public void feed(Cat cat) {
cat.eat();
System.out.println("人喂猫");
}
public void feed(Tiger tiger) {
tiger.eat();
System.out.println("人喂老虎");
}
public void feed(Dog dog) {
dog.eat();
}
}
class Dog {
public void feed(Dog dog) {
dog.eat();
}
public void eat() {
System.out.println("狗吃shi");
}
}
class Cat {
public void eat() {
System.out.println("猫吃鱼");
}
}
class Tiger {
public void eat() {
System.out.println("老虎吃肉");
}
}
package com.xiaoliang.yilaidaozhi.active;
public class yilaidaozhi {
public static void main(String[] args) {
Person person = new Person();
person.feed(new Cat());
person.feed(new Dog());
}
}
interface Animal{
void eat();
}
class Person {
public void feed(Animal animal) {
animal.eat();
}
}
class Dog implements Animal {
public void eat() {
System.out.println("狗吃shi");
}
}
class Cat implements Animal{
public void eat() {
System.out.println("猫吃鱼");
}
}