前置导学
依赖倒置原则
概述:为减少代码之间的耦合性,尽量使用接口或是抽象类。
下面我将通过司机开不通车的案例来向大家展示。
接口隔离原则
概述:根据实际开发需求将复杂,多功能的接口分解成简单,实现功能少的接口。
下面我见通过美女定义标准的案例来向大家展示。
迪米特原则
概述:为不同的类之间相互联系的问题创建中间类,建立联系桥梁。
下面我将通过明星和粉丝及公司见面合作的案例来向大家展示。
单例模式
为了满足某些需要,通常我们会将一些变量定义成常量。这就是单例设计模式。
下面,我将通过皇上的案例来向大家展示。
依赖倒置原则
public interface Alldriver {
public void drive(ICar car);
}
public interface ICar {
public void run();
}
public class Benc implements ICar {
@Override
public void run() {
System.out.println("奔驰车飞驰-------------");
}
}
public class Hmw implements ICar {
@Override
public void run() {
System.out.println("宝马车飞驰-------------");
}
}
public class Clients {
public static void main(String[] args) {
Driver driver = new Driver();
driver.drive(new Hmw());
driver.drive(new Benc());
}
}
public class Driver implements Alldriver {
@Override
public void drive(ICar car) {
System.out.println("司机开车");
car.run();
}
}
接口隔离原则
public interface Butity {
void goodLook();
void goodTemper();
void goodFigure();
}
public class Girl1 implements Butity{
@Override
public void goodLook() {
System.out.println("脸蛋倾国倾城---------");
}
@Override
public void goodTemper() {
System.out.println("爱everything!");
}
@Override
public void goodFigure() {
System.out.println("很瘦,但该有肉的地方都有肉!");
}
}
public interface Search {
void search(Butity girl);
}
public class Searcher implements Search{
@Override
public void search(Butity girl) {
System.out.println("发现一位美女!");
girl.goodFigure();
girl.goodLook();
girl.goodTemper();
}
}
public class Test {
public static void main(String[] args) {
Searcher p = new Searcher();
p.search(new Girl1());
}
}
迪米特原则
public class Star {
class Agents{
Star1 p = new Star1("迪丽热巴");
void meet(Fans fans){
System.out.println("" + fans.getName() + "和" + p.getName() + "见面!");
}
void cooperate(Company c){
System.out.println("" + c.getName() + "和" + p.getName() + "艺人商谈合作事项!");
}
}
class Star1{
private String name;
public Star1(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
class Fans{
private String name;
public Fans(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Company{
private String name;
public Company(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public static void main(String[] args) {
Star s = new Star();
Agents a = s.new Agents();
a.meet(s.new Fans("小九"));
a.cooperate(s.new Company("中央电视台"));
}
}
DP单例模式
public class Emperor {
private static Emperor emperor = null;
private Emperor() {
}
public static Emperor getInstance(){
if(emperor == null){
emperor = new Emperor();
}
return emperor;
}
public void say(){
System.out.println("我是皇帝xxx,有事启奏,无事退朝----------");
}
}
public class Minister {
void meet() {
Emperor emperor = Emperor.getInstance();
for (int i = 0; i < 5; i++) {
System.out.println("大臣们上朝!");
emperor.say();
}
}
}
public class Test {
public static void main(String[] args) {
Minister m = new Minister();
m.meet();
}
}