zoukankan      html  css  js  c++  java
  • C#

    虚模式

    问题场景

    子类从抽象派生是为了解耦,但为了适应新的变化,可能需要向抽象类添加新功能,假如在添加新功能之前已经有100个子类实现了抽象,那么接下来你得在100个子类中去重写向抽象添加的新功能。

    总结模式

     可以使用virtual修饰符来定义新功能,virtual并不强制要求子类去实现,所以新增功能可以以这种方式定义在抽象类中并提供一个默认的实现。

    示例代码

    //遥控器抽象
    public abstract class Remote
    {
        public abstract void TurnOn( );
        //新功能
        public virtual void SearchChannels( )
        {
            Console.WriteLine( "正在搜索频道" );
        }
    }

    //我可以不重写新增功能,用默认的实现就好了
    public class PanasonicRemote : Remote
    {
        public override void TurnOn( )
        {
            Console.WriteLine( "正在关闭松下电视" );
        }
    }

    //我得重写新功能,以便符合我的要求
    public class PandaRemote : Remote
    {
        public override void TurnOn( )
        {
            Console.WriteLine( "正在关闭熊猫电视" );
        }

        public override void SearchChannels( )
        {
            Console.WriteLine( "正在搜索熊猫牌电视内置的频道" );
        }
    }

    C# - 设计模式目录

  • 相关阅读:
    py爬取英文文档学习单词
    windows 下使clion支持c++11操作记录
    angular在ie8下的一个bug
    连连看小游戏前端实现
    如何禁止页面文字被选中
    分享一个BUG
    描点链接元素的优化提升用户体验
    模拟淘宝滚动显示问题解决入口
    简易图片轮播效果
    支付战争
  • 原文地址:https://www.cnblogs.com/myrocknroll/p/8600979.html
Copyright © 2011-2022 走看看