zoukankan      html  css  js  c++  java
  • 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 }

      

  • 相关阅读:
    LeetCode(75) Sort Colors
    大众点评2015 在线笔试(1)
    百度2015 在线笔试题(3)
    百度2015 在线笔试题(2)
    百度2015 在线笔试题(1)
    其他 之网站分享插件
    Flask框架 之request对象
    Flask框架 之路由
    Flask框架 之第一个Flask程序
    微信 之网页授权登录
  • 原文地址:https://www.cnblogs.com/chenxing818/p/4682903.html
Copyright © 2011-2022 走看看