适配器模式
object MyAdapter {
trait Person{
def say(context:String): Unit
def run():Unit
}
abstract class Chinese extends Person {
override def say(context: String): Unit = {}
override def run(): Unit = {}
}
class Student extends Chinese{
override def say(context: String): Unit = {
println(context)
}
}
def main(args: Array[String]): Unit = {
val student = new Student
println(student.say("我是中国学生"))
}
}
责任链模式
特质按照从右往左的顺序,依次执行特质中的方法
object MyResponsibility {
trait QQ{
def login(str:String): Unit ={
println(str)
}
}
trait check extends QQ{
override def login(str: String): Unit = {
println("验证")
super.login(str)
}
}
trait Click extends QQ{
override def login(str: String): Unit = {
println("打开")
super.login(str)
}
}
class User extends check with Click{
override def login(str: String): Unit = {
println("user ==>" + str)
super.login(str)
}
}
def main(args: Array[String]): Unit = {
val user = new User
user.login("zs")
}
}