• java接口应用—策略设计模式


         策略模式:定义了一系列算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化

           strategy pattern:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.

    oo设计原则:

    1、面向接口编程(面向抽象编程)

    2、封装变化

    3、多用组合,少用继承

    例子:

     1 package practice1;
     2 
     3 public class Test9 {
     4 
     5     public static void main(String[] args) {
     6           Duck duck=new BlackDuck("黑鸭子", new FlyImpl());
     7           duck.fly();
     8           
     9           Duck duck2=new ModeDuck("白鸭子", new NotFlyImpl());
    10           duck2.fly();
    11     }
    12 }
    13 class Duck{
    14     private String name;
    15     private Flyable flyable;//把接口作为属性
    16         
    17     public Duck(String name,Flyable flyable){
    18         this.name=name;
    19         this.flyable=flyable;
    20     }
    21     public void fly(){
    22         flyable.fly();
    23     }
    24 }
    25 
    26 class BlackDuck extends Duck{
    27 
    28     public BlackDuck(String name, Flyable flyable) {
    29         super(name, flyable);
    30     }
    31     
    32 }
    33 class ModeDuck extends Duck{
    34 
    35     public ModeDuck(String name, Flyable flyable) {
    36         super(name, flyable);
    37     }
    38 
    39 }
    40 //接口
    41 interface Flyable{
    42     public void fly();
    43 }
    44 
    45 class FlyImpl implements Flyable{
    46 
    47     @Override
    48     public void fly() {
    49        System.out.println("会飞");    
    50     }
    51     
    52 }
    53 
    54 class NotFlyImpl implements Flyable{
    55 
    56     @Override
    57     public void fly() {
    58         System.out.println("不会飞");
    59     }
    60     
    61 }

      

  • 相关阅读:
    Hbase集群部署及shell操作
    sqoop部署与使用
    azkaban部署
    Hive入门操作
    Hive部署
    MapReduce过程详解(基于hadoop2.x架构)
    MapReduce编程中常用的字符操作
    【图文详解】深入HDFS原理
    vue项目跨域问题的解决:vue-cli 开启代理
    beego框架入门(2)
  • 原文地址:https://www.cnblogs.com/chenxing818/p/4682903.html
Copyright © 2020-2023  润新知