草庐IT

abstractions

全部标签

c++ - 复制构造函数 : deep copying an abstract class

假设我有以下情况(简化情况):classColor;classIColor{public:virtualColorgetValue(constfloatu,constfloatv)const=0;};classColor:publicIColor{public:floatr,g,b;Color(floatar,floatag,floatab):r(ar),g(ag),b(ab){}ColorgetValue(constfloatu,constfloatv)const{returnColor(r,g,b)}}classMaterial{private:IColor*_color;publ

抽象工厂模式(Abstract Factory Pattern)

回顾工厂方法设计模式的不足:具体产品增加时,系统中类的个数将成对增加,在一定程度上增加了系统的复杂度模式动机产品等级结构:产品等级结构即产品的继承结构,即抽象产品与具体产品产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品模式定义提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。模式结构模式优点隔离了具体类的生成,使得客户端并不需要知道什么被创建当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象增加新的产品族很方便,无须修改已有系统,符合开闭原则模式

python - 如何修复 pylint 警告 "Abstract class not referenced"?

我有一个Python类,它为几个方法引发了“NotImplementedError”,并且该类被其他一些在它们自己的文件中定义的类继承。当我在具有抽象类的文件上运行Pylint时,它总是提示“未引用抽象类”。我想知道这只是Pylint偏执还是我确实需要解决一些问题? 最佳答案 如果你的类中有一个引发NotImplementedError的方法,这足以让pylint认为这是一个抽象类。作为pylint检查与项目其余部分隔离的每个文件,如果没有人从文件中的此类继承,它将引发此消息。如果你想停用它,你必须在你的类定义之前添加这个注释:#p

java.lang.ClassFormatError : Absent Code attribute in method that is not native or abstract in class file javax/mail/MessagingException

我有一个javaeeBibliothek的maven依赖项。javaxjavaee-api6.0provided我在Eclipse中的某些类中遇到错误。java.lang.ClassFormatError:AbsentCodeattributeinmethodthatisnotnativeorabstractinclassfilejavax/mail/MessagingException我添加了javax.mail依赖项。javax.mailmail1.4.5它没有工作。有什么想法吗?? 最佳答案 它不起作用,因为来自javax/j

Java 8 : virtual extension methods vs abstract class

我正在研究Java8接口(interface)中的新虚拟扩展方法:publicinterfaceMyInterface{defaultStringmyMethod(){return"myImplementation";}}我明白它们的目的是允许接口(interface)随着时间的推移而演变,以及多重继承位,但它们在我看来非常像一个抽象类。如果您正在做新的工作,是否更喜欢抽象类而不是扩展方法来为“接口(interface)”提供实现,或者这两种方法在概念上是否等效? 最佳答案 此类构造的一个主要目的是保持向后兼容性。在Java语言中添

java - 装饰器模式 : Why do we need an abstract decorator?

这个问题已经被问过了here,但不是回答具体问题,而是给出了装饰器模式如何工作的描述。我想再问一次,因为仅仅通过阅读装饰器模式的工作原理对我来说答案并没有立即显现出来(我已经阅读了维基百科的文章和《HeadFirstDesignPatterns》一书中的部分)。基本上,我想知道为什么必须创建一个抽象装饰器类来实现(或扩展)某些接口(interface)(或抽象类)。为什么所有新的“装饰类”都不能简单地实现(或扩展)基本抽象对象本身(而不是扩展抽象装饰器类)?为了更具体,我将使用设计模式书中处理咖啡饮料的示例:有一个抽象的组件类叫BeverageHouseBlend等简单饮料类型只需扩展

java - Spring 和 Abstract 类 - 在抽象类中注入(inject)属性

我有一个抽象基类,它有一个名为“mailserver”的属性,我希望从springioc容器中注入(inject)它。但是,当我运行抽象类的具体实现时,邮件服务器属性为空。这样做的正确方法是什么?您是否尝试过这样做并成功了?请分享。 最佳答案 使用abstract属性将抽象基类定义标记为abstract,并在具体类定义中将parent属性设为抽象类的名称'sbean名称类似这样的: 关于java-Spring和Abstract类-在抽象类中注入(inject)属性,我们在StackOve

abstract-syntax-tree - 如何获得 Kotlin AST?

我有一个带有Kotlin源代码的字符串。如何在运行时编译它并获取抽象语法树和类型信息以进行分析? 最佳答案 我对Kotlin编译器进行了一些调查。在我的GitHubrepo上可以看到一些获得AST的概念证明。.这只是一个草图,但可能会有所帮助:classKotlinScriptParser{companionobject{privatevalLOG=Logger.getLogger(KotlinScriptParser.javaClass.name)privatevalmessageCollector=object:MessageC

android - 类 'MyFirebaseMessagingService' 不是抽象的,也没有实现抽象基类成员 public abstract fun zzd(p0 : Intent! )

这里我在Kotlin中使用了FirebaseMessagingService,但是当我运行项目时,它会给我以下错误:Class'MyFirebaseMessagingService'isnotabstractanddoesnotimplementabstractbaseclassmemberpublicabstractfunzzd(p0:Intent!):Unitdefinedincom.google.firebase.messaging.FirebaseMessagingService有什么帮助吗? 最佳答案 更新您的所有Fire

c++ - "Cannot allocate an object of abstract type"错误

错误在这里:vectorgraduates;graduates.push_back(newAliceUniversity(identifier,id,salary,average));祖parent类:Graduate::Graduate(charidentifier,longid,intsalary,doubleaverage):_identifier(identifier),_id(id),_salary(salary),_average(average){}父类:UniversityGraduate::UniversityGraduate(charidentifier,longi