tea

设计模式:装饰者模式

守給你的承諾、 提交于 2019-12-21 16:43:43
装饰者模式 动态地将责任附加到对象上。若要拓展功能,装饰者提供了比继承更有弹性的替代方案。 1. 角色 抽象构件(Component)角色:要包装的原始对象,是一个抽象类或接口。 具体构件(ConcreteComponent)角色:最终要装饰的实际对象,是Component的实现类。 装饰(Decorator)角色:是一个抽象类,继承自Component,同时持有一个对Component实例对象的引用。 具体装饰(ConcreteComponent)角色:具体的装饰者对象,是Decorator的实现类,负责给ConcreteComponent附加责任。 2. Demo背景 一个奶茶店每款奶茶可以自己选添加一些辅料如燕麦,布丁,红豆,珍珠等等。添加辅料不同可能价格也不同,又或者是我们全都要,同时添加多种辅料,这样我们设计对象时就遇到了困难,难道要排列组合去创建子类吗?这样做显然是不好的,类数量爆炸,设计死板。在这时候我们就可以引用装饰者模式,用组合的方式代替继承。 3. 代码实现 抽象构件类(Component):MilkyTea public abstract class MilkyTea(奶茶) { public string description; public abstract double GetFee(); //与java不一样

三大特性-继承

穿精又带淫゛_ 提交于 2019-12-05 03:15:21
引出 1 怎么让类公有的属性共同处理:定义一个统一的类来描述,子类继承父类 语法 public class Tea extends Person{ } 作用 1 2 3 优点 注意点 1 java中不支持多继承,即一个子类只能继承一个父类 2 但是可以多个子类继承自一个父类 3 多层继承时,继承依旧有效 思考 直接实例化子类时,父类会被实例化吗?会先实例化父类,不管多少层继承,只要子类实例化,父类都会被实例化 代码 1 public class Person { 2 String name; 3 int age; 4 Person(){ 5 6 } 7 } 8 9 public class Tea extends Person{ 10 Tea(){ //走到这就去调父类的构造函数去了 11 //super("123"); 12 System.out.println("Tea is ok"); 13 } 14 } 15 16 public class App { 17 public static void main(String[] args) { 18 Tea t=new Tea(); 19 } 20 } super关键字 定义:指向父类的指针 作用:在子类中想要调用父类的方法、属性、构造器 语法:super.name super.run() super(“jim”,23) 注意

设计模式:装饰者模式

谁说我不能喝 提交于 2019-11-28 04:17:42
装饰者模式 动态地将责任附加到对象上。若要拓展功能,装饰者提供了比继承更有弹性的替代方案。 1. 角色 抽象构件(Component)角色:要包装的原始对象,是一个抽象类或接口。 具体构件(ConcreteComponent)角色:最终要装饰的实际对象,是Component的实现类。 装饰(Decorator)角色:是一个抽象类,继承自Component,同时持有一个对Component实例对象的引用。 具体装饰(ConcreteComponent)角色:具体的装饰者对象,是Decorator的实现类,负责给ConcreteComponent附加责任。 2. Demo背景 一个奶茶店每款奶茶可以自己选添加一些辅料如燕麦,布丁,红豆,珍珠等等。添加辅料不同可能价格也不同,又或者是我们全都要,同时添加多种辅料,这样我们设计对象时就遇到了困难,难道要排列组合去创建子类吗?这样做显然是不好的,类数量爆炸,设计死板。在这时候我们就可以引用装饰者模式,用组合的方式代替继承。 3. 代码实现 抽象构件类(Component):MilkyTea public abstract class MilkyTea(奶茶) { public string description; public abstract double GetFee(); //与java不一样

MySQL外键约束

泪湿孤枕 提交于 2019-11-27 18:48:26
create table tea( id int(10) primary key auto_increment, name varchar(20), ); create table stu( id int(10) primary key auto_increment, name varchar(20), tid int(10), constraint st_key foreign key (tid) references tea(id) ); 默认是restrict,当删除tea时 [SQL] DROP TABLE tea; [Err] 1217 - Cannot delete or update a parent row: a foreign key constraint fails 当删除stu时,是可以执行的 [SQL] drop table stu; 受影响的行: 0 时间: 0.051s 来源: CSDN 作者: 后知后觉后海 链接: https://blog.csdn.net/qq_40392686/article/details/82850333