适配器模式

  1. object MyAdapter {
  2. trait Person{
  3. def say(context:String): Unit
  4. def run():Unit
  5. }
  6. abstract class Chinese extends Person {
  7. override def say(context: String): Unit = {}
  8. override def run(): Unit = {}
  9. }
  10. class Student extends Chinese{
  11. override def say(context: String): Unit = {
  12. println(context)
  13. }
  14. }
  15. def main(args: Array[String]): Unit = {
  16. val student = new Student
  17. println(student.say("我是中国学生"))
  18. }
  19. }

责任链模式

特质按照从右往左的顺序,依次执行特质中的方法

image.png

  1. object MyResponsibility {
  2. trait QQ{
  3. def login(str:String): Unit ={
  4. println(str)
  5. }
  6. }
  7. trait check extends QQ{
  8. override def login(str: String): Unit = {
  9. println("验证")
  10. super.login(str)
  11. }
  12. }
  13. trait Click extends QQ{
  14. override def login(str: String): Unit = {
  15. println("打开")
  16. super.login(str)
  17. }
  18. }
  19. class User extends check with Click{
  20. override def login(str: String): Unit = {
  21. println("user ==>" + str)
  22. super.login(str)
  23. }
  24. }
  25. def main(args: Array[String]): Unit = {
  26. val user = new User
  27. user.login("zs")
  28. }
  29. }

image.png